diff --git a/src/main/java/carpet/network/ServerNetworkHandler.java b/src/main/java/carpet/network/ServerNetworkHandler.java index 3c87dd6a..71e8e35c 100644 --- a/src/main/java/carpet/network/ServerNetworkHandler.java +++ b/src/main/java/carpet/network/ServerNetworkHandler.java @@ -19,8 +19,8 @@ import java.util.Set; public class ServerNetworkHandler { - public static Map remoteCarpetPlayers = new HashMap<>(); - public static Set validCarpetPlayers = new HashSet<>(); + private static Map remoteCarpetPlayers = new HashMap<>(); + private static Set validCarpetPlayers = new HashSet<>(); public static void handleData(PacketByteBuf data, ServerPlayerEntity player) { @@ -64,6 +64,7 @@ public class ServerNetworkHandler public static void updateRuleWithConnectedClients(ParsedRule rule) { + if (CarpetSettings.superSecretSetting) return; for (ServerPlayerEntity player : remoteCarpetPlayers.keySet()) { player.networkHandler.sendPacket(new CustomPayloadS2CPacket( @@ -75,6 +76,7 @@ public class ServerNetworkHandler public static void updateTickSpeedToConnectedPlayers() { + if (CarpetSettings.superSecretSetting) return; for (ServerPlayerEntity player : remoteCarpetPlayers.keySet()) { player.networkHandler.sendPacket(new CustomPayloadS2CPacket( @@ -86,6 +88,7 @@ public class ServerNetworkHandler public static void broadcastCustomCommand(String command, Tag data) { + if (CarpetSettings.superSecretSetting) return; for (ServerPlayerEntity player : validCarpetPlayers) { player.networkHandler.sendPacket(new CustomPayloadS2CPacket( @@ -97,7 +100,7 @@ public class ServerNetworkHandler public static void sendCustomCommand(ServerPlayerEntity player, String command, Tag data) { - if (validCarpetPlayers.contains(player)) + if (isValidCarpetPlayer(player)) { player.networkHandler.sendPacket(new CustomPayloadS2CPacket( CarpetClient.CARPET_CHANNEL, @@ -120,6 +123,13 @@ public class ServerNetworkHandler validCarpetPlayers.clear(); } + public static boolean isValidCarpetPlayer(ServerPlayerEntity player) + { + if (CarpetSettings.superSecretSetting) return false; + return validCarpetPlayers.contains(player); + + } + private static class DataBuilder { private CompoundTag tag; diff --git a/src/main/java/carpet/script/utils/ShapeDispatcher.java b/src/main/java/carpet/script/utils/ShapeDispatcher.java index cfc45896..51434a3c 100644 --- a/src/main/java/carpet/script/utils/ShapeDispatcher.java +++ b/src/main/java/carpet/script/utils/ShapeDispatcher.java @@ -108,7 +108,7 @@ public class ShapeDispatcher List alternativePlayers = new ArrayList<>(); for (ServerPlayerEntity player : players) { - if (ServerNetworkHandler.validCarpetPlayers.contains(player)) + if (ServerNetworkHandler.isValidCarpetPlayer(player)) { clientPlayers.add(player); } @@ -330,7 +330,7 @@ public class ShapeDispatcher } public Vec3d relativiseRender(World world, Vec3d vec, float partialTick) { - if (followEntity <= 0) return vec; + if (followEntity < 0) return vec; Entity e = world.getEntityById(followEntity); if (e == null) return vec; return toAbsolute(e, vec, partialTick); @@ -346,6 +346,14 @@ public class ShapeDispatcher NumericValue.asNumber( elements.get(2)).getDouble() ); } + protected ParticleEffect replacementParticle() + { + String particleName = fa ==0 ? + String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", r, g, b): + String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", fr, fg, fb); + return getParticleData(particleName); + } + public abstract Consumer alternative(); public long key() @@ -408,8 +416,7 @@ public class ShapeDispatcher @Override public Consumer alternative() { - String particleName = String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", r, g, b); - ParticleEffect particle = getParticleData(particleName); + ParticleEffect particle = replacementParticle(); double density = Math.max(2.0, from.distanceTo(to) /50) / (a+0.1); return p -> { @@ -442,7 +449,7 @@ public class ShapeDispatcher double x1 = from.x; double y1 = from.y; double z1 = from.z; - double x2 = to.z; + double x2 = to.x; double y2 = to.y; double z2 = to.z; return @@ -492,10 +499,8 @@ public class ShapeDispatcher @Override public Consumer alternative() { - String particleName = String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", r, g, b); - ParticleEffect particle = getParticleData(particleName); + ParticleEffect particle = replacementParticle(); double density = Math.max(2.0, from.distanceTo(to) /50) / (a+0.1); - return p -> { if (p.world.getRegistryKey() == shapeDimension) drawParticleLine( @@ -555,9 +560,7 @@ public class ShapeDispatcher @Override public Consumer alternative() { return p -> { - if (p.world.getRegistryKey() != shapeDimension) return; - String particleName = String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", r, g, b); - ParticleEffect particle = getParticleData(particleName); + ParticleEffect particle = replacementParticle(); int partno = Math.min(1000,20*subdivisions); Random rand = p.world.getRandom(); ServerWorld world = p.getServerWorld(); @@ -635,8 +638,7 @@ public class ShapeDispatcher @Override public Consumer alternative() { return p -> { - String particleName = String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", r, g, b); - ParticleEffect particle = getParticleData(particleName); + ParticleEffect particle = replacementParticle(); int partno = (int)Math.min(1000,Math.sqrt(20*subdivisions*(1+height))); Random rand = p.world.getRandom(); ServerWorld world = p.getServerWorld();