This commit is contained in:
gnembon committed 2020-06-10 23:20:21 -03:00
1 parent 7eb345ff59
commit 39f0b86272
2 files changed
+28 -16

No files matched your search

@@ -18,8 +18,8 @@ import java.util.Set;
public class ServerNetworkHandler public class ServerNetworkHandler
{ {
public static Map<ServerPlayerEntity, String> remoteCarpetPlayers = new HashMap<>(); private static Map<ServerPlayerEntity, String> remoteCarpetPlayers = new HashMap<>();
public static Set<ServerPlayerEntity> validCarpetPlayers = new HashSet<>(); private static Set<ServerPlayerEntity> validCarpetPlayers = new HashSet<>();
public static void handleData(PacketByteBuf data, ServerPlayerEntity player) public static void handleData(PacketByteBuf data, ServerPlayerEntity player)
{ {
@@ -63,6 +63,7 @@ public class ServerNetworkHandler
public static void updateRuleWithConnectedClients(ParsedRule<?> rule) public static void updateRuleWithConnectedClients(ParsedRule<?> rule)
{ {
if (CarpetSettings.superSecretSetting) return;
for (ServerPlayerEntity player : remoteCarpetPlayers.keySet()) for (ServerPlayerEntity player : remoteCarpetPlayers.keySet())
{ {
player.networkHandler.sendPacket(new CustomPayloadS2CPacket( player.networkHandler.sendPacket(new CustomPayloadS2CPacket(
@@ -74,6 +75,7 @@ public class ServerNetworkHandler
public static void updateTickSpeedToConnectedPlayers() public static void updateTickSpeedToConnectedPlayers()
{ {
if (CarpetSettings.superSecretSetting) return;
for (ServerPlayerEntity player : remoteCarpetPlayers.keySet()) for (ServerPlayerEntity player : remoteCarpetPlayers.keySet())
{ {
player.networkHandler.sendPacket(new CustomPayloadS2CPacket( player.networkHandler.sendPacket(new CustomPayloadS2CPacket(
@@ -85,6 +87,7 @@ public class ServerNetworkHandler
public static void broadcastCustomCommand(String command, Tag data) public static void broadcastCustomCommand(String command, Tag data)
{ {
if (CarpetSettings.superSecretSetting) return;
for (ServerPlayerEntity player : validCarpetPlayers) for (ServerPlayerEntity player : validCarpetPlayers)
{ {
player.networkHandler.sendPacket(new CustomPayloadS2CPacket( player.networkHandler.sendPacket(new CustomPayloadS2CPacket(
@@ -96,7 +99,7 @@ public class ServerNetworkHandler
public static void sendCustomCommand(ServerPlayerEntity player, String command, Tag data) public static void sendCustomCommand(ServerPlayerEntity player, String command, Tag data)
{ {
if (validCarpetPlayers.contains(player)) if (isValidCarpetPlayer(player))
{ {
player.networkHandler.sendPacket(new CustomPayloadS2CPacket( player.networkHandler.sendPacket(new CustomPayloadS2CPacket(
CarpetClient.CARPET_CHANNEL, CarpetClient.CARPET_CHANNEL,
@@ -119,6 +122,13 @@ public class ServerNetworkHandler
validCarpetPlayers.clear(); validCarpetPlayers.clear();
} }
public static boolean isValidCarpetPlayer(ServerPlayerEntity player)
{
if (CarpetSettings.superSecretSetting) return false;
return validCarpetPlayers.contains(player);
}
private static class DataBuilder private static class DataBuilder
{ {
private CompoundTag tag; private CompoundTag tag;
@@ -106,7 +106,7 @@ public class ShapeDispatcher
List<ServerPlayerEntity> alternativePlayers = new ArrayList<>(); List<ServerPlayerEntity> alternativePlayers = new ArrayList<>();
for (ServerPlayerEntity player : players) for (ServerPlayerEntity player : players)
{ {
if (ServerNetworkHandler.validCarpetPlayers.contains(player)) if (ServerNetworkHandler.isValidCarpetPlayer(player))
{ {
clientPlayers.add(player); clientPlayers.add(player);
} }
@@ -328,7 +328,7 @@ public class ShapeDispatcher
} }
public Vec3d relativiseRender(World world, Vec3d vec, float partialTick) public Vec3d relativiseRender(World world, Vec3d vec, float partialTick)
{ {
if (followEntity <= 0) return vec; if (followEntity < 0) return vec;
Entity e = world.getEntityById(followEntity); Entity e = world.getEntityById(followEntity);
if (e == null) return vec; if (e == null) return vec;
return toAbsolute(e, vec, partialTick); return toAbsolute(e, vec, partialTick);
@@ -344,6 +344,14 @@ public class ShapeDispatcher
NumericValue.asNumber( elements.get(2)).getDouble() 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<ServerPlayerEntity> alternative(); public abstract Consumer<ServerPlayerEntity> alternative();
public long key() public long key()
@@ -406,8 +414,7 @@ public class ShapeDispatcher
@Override @Override
public Consumer<ServerPlayerEntity> alternative() public Consumer<ServerPlayerEntity> alternative()
{ {
String particleName = String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", r, g, b); ParticleEffect particle = replacementParticle();
ParticleEffect particle = getParticleData(particleName);
double density = Math.max(2.0, from.distanceTo(to) /50) / (a+0.1); double density = Math.max(2.0, from.distanceTo(to) /50) / (a+0.1);
return p -> return p ->
{ {
@@ -440,7 +447,7 @@ public class ShapeDispatcher
double x1 = from.x; double x1 = from.x;
double y1 = from.y; double y1 = from.y;
double z1 = from.z; double z1 = from.z;
double x2 = to.z; double x2 = to.x;
double y2 = to.y; double y2 = to.y;
double z2 = to.z; double z2 = to.z;
return return
@@ -490,10 +497,8 @@ public class ShapeDispatcher
@Override @Override
public Consumer<ServerPlayerEntity> alternative() public Consumer<ServerPlayerEntity> alternative()
{ {
String particleName = String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", r, g, b); ParticleEffect particle = replacementParticle();
ParticleEffect particle = getParticleData(particleName);
double density = Math.max(2.0, from.distanceTo(to) /50) / (a+0.1); double density = Math.max(2.0, from.distanceTo(to) /50) / (a+0.1);
return p -> return p ->
{ {
if (p.dimension == shapeDimension) drawParticleLine( if (p.dimension == shapeDimension) drawParticleLine(
@@ -553,9 +558,7 @@ public class ShapeDispatcher
@Override @Override
public Consumer<ServerPlayerEntity> alternative() { return p -> public Consumer<ServerPlayerEntity> alternative() { return p ->
{ {
if (p.dimension != shapeDimension) return; ParticleEffect particle = replacementParticle();
String particleName = String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", r, g, b);
ParticleEffect particle = getParticleData(particleName);
int partno = Math.min(1000,20*subdivisions); int partno = Math.min(1000,20*subdivisions);
Random rand = p.world.getRandom(); Random rand = p.world.getRandom();
ServerWorld world = p.getServerWorld(); ServerWorld world = p.getServerWorld();
@@ -633,8 +636,7 @@ public class ShapeDispatcher
@Override @Override
public Consumer<ServerPlayerEntity> alternative() { return p -> public Consumer<ServerPlayerEntity> alternative() { return p ->
{ {
String particleName = String.format(Locale.ROOT , "dust %.1f %.1f %.1f 1.0", r, g, b); ParticleEffect particle = replacementParticle();
ParticleEffect particle = getParticleData(particleName);
int partno = (int)Math.min(1000,Math.sqrt(20*subdivisions*(1+height))); int partno = (int)Math.min(1000,Math.sqrt(20*subdivisions*(1+height)));
Random rand = p.world.getRandom(); Random rand = p.world.getRandom();
ServerWorld world = p.getServerWorld(); ServerWorld world = p.getServerWorld();