code style

This commit is contained in:
gnembon committed 2023-08-08 12:45:00 +02:00
1 parent cd572695b6
commit 40cb29cd6b
3 files changed
+115 -28

No files matched your search

+16 -5
View File
@@ -16,17 +16,20 @@ public class CarpetClient
{ {
public record CarpetPayload(CompoundTag data) implements CustomPacketPayload public record CarpetPayload(CompoundTag data) implements CustomPacketPayload
{ {
public CarpetPayload(FriendlyByteBuf input) { public CarpetPayload(FriendlyByteBuf input)
{
this(input.readNbt()); this(input.readNbt());
} }
@Override @Override
public void write(FriendlyByteBuf output) { public void write(FriendlyByteBuf output)
{
output.writeNbt(data); output.writeNbt(data);
} }
@Override @Override
public ResourceLocation id() { public ResourceLocation id()
{
return CARPET_CHANNEL; return CARPET_CHANNEL;
} }
} }
@@ -78,7 +81,10 @@ public class CarpetClient
public static boolean sendClientCommand(String command) public static boolean sendClientCommand(String command)
{ {
if (!isServerCarpet && CarpetServer.minecraft_server == null) return false; if (!isServerCarpet && CarpetServer.minecraft_server == null)
{
return false;
}
ClientNetworkHandler.clientCommand(command); ClientNetworkHandler.clientCommand(command);
return true; return true;
} }
@@ -89,12 +95,17 @@ public class CarpetClient
CompoundTag tag = (CompoundTag) t; CompoundTag tag = (CompoundTag) t;
CarpetSettings.LOG.info(" - id: " + tag.getString("id")); CarpetSettings.LOG.info(" - id: " + tag.getString("id"));
CarpetSettings.LOG.info(" - code: " + tag.getInt("code")); CarpetSettings.LOG.info(" - code: " + tag.getInt("code"));
if (tag.contains("error")) CarpetSettings.LOG.warn(" - error: "+tag.getString("error")); if (tag.contains("error"))
{
CarpetSettings.LOG.warn(" - error: " + tag.getString("error"));
}
if (tag.contains("output")) if (tag.contains("output"))
{ {
ListTag outputTag = (ListTag) tag.get("output"); ListTag outputTag = (ListTag) tag.get("output");
for (int i = 0; i < outputTag.size(); i++) for (int i = 0; i < outputTag.size(); i++)
{
CarpetSettings.LOG.info(" - response: " + Component.Serializer.fromJson(outputTag.getString(i)).getString()); CarpetSettings.LOG.info(" - response: " + Component.Serializer.fromJson(outputTag.getString(i)).getString());
} }
} }
} }
}
@@ -8,9 +8,11 @@ import carpet.api.settings.InvalidRuleValueException;
import carpet.fakes.LevelInterface; import carpet.fakes.LevelInterface;
import carpet.helpers.TickRateManager; import carpet.helpers.TickRateManager;
import carpet.api.settings.SettingsManager; import carpet.api.settings.SettingsManager;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.player.LocalPlayer;
import net.minecraft.nbt.ByteTag; import net.minecraft.nbt.ByteTag;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
@@ -22,6 +24,7 @@ import net.minecraft.network.protocol.common.ServerboundCustomPayloadPacket;
public class ClientNetworkHandler public class ClientNetworkHandler
{ {
private static final Map<String, BiConsumer<LocalPlayer, Tag>> dataHandlers = new HashMap<String, BiConsumer<LocalPlayer, Tag>>(); private static final Map<String, BiConsumer<LocalPlayer, Tag>> dataHandlers = new HashMap<String, BiConsumer<LocalPlayer, Tag>>();
static static
{ {
dataHandlers.put(CarpetClient.HI, (p, t) -> onHi(t.getAsString())); dataHandlers.put(CarpetClient.HI, (p, t) -> onHi(t.getAsString()));
@@ -42,7 +45,8 @@ public class ClientNetworkHandler
} }
else else
{ {
for (CarpetExtension extension: CarpetServer.extensions) { for (CarpetExtension extension : CarpetServer.extensions)
{
SettingsManager eManager = extension.extensionSettingsManager(); SettingsManager eManager = extension.extensionSettingsManager();
if (eManager != null && managerName.equals(eManager.identifier())) if (eManager != null && managerName.equals(eManager.identifier()))
{ {
@@ -61,7 +65,13 @@ public class ClientNetworkHandler
if (rule != null) if (rule != null)
{ {
String value = ruleNBT.getString("Value"); String value = ruleNBT.getString("Value");
try { rule.set(null, value); } catch (InvalidRuleValueException ignored) { } try
{
rule.set(null, value);
}
catch (InvalidRuleValueException ignored)
{
}
} }
} }
}); });
@@ -76,7 +86,7 @@ public class ClientNetworkHandler
}); });
dataHandlers.put("SuperHotState", (p, t) -> { dataHandlers.put("SuperHotState", (p, t) -> {
TickRateManager tickRateManager = ((LevelInterface) p.clientLevel).tickRateManager(); TickRateManager tickRateManager = ((LevelInterface) p.clientLevel).tickRateManager();
tickRateManager.setSuperHot(((ByteTag) t).equals(ByteTag.ONE)); tickRateManager.setSuperHot(t.equals(ByteTag.ONE));
}); });
dataHandlers.put("TickPlayerActiveTimeout", (p, t) -> { dataHandlers.put("TickPlayerActiveTimeout", (p, t) -> {
TickRateManager tickRateManager = ((LevelInterface) p.clientLevel).tickRateManager(); TickRateManager tickRateManager = ((LevelInterface) p.clientLevel).tickRateManager();
@@ -84,15 +94,17 @@ public class ClientNetworkHandler
}); });
dataHandlers.put("scShape", (p, t) -> { // deprecated // and unused // should remove for 1.17 dataHandlers.put("scShape", (p, t) -> { // deprecated // and unused // should remove for 1.17
if (CarpetClient.shapes != null) if (CarpetClient.shapes != null)
{
CarpetClient.shapes.addShape((CompoundTag) t); CarpetClient.shapes.addShape((CompoundTag) t);
}
}); });
dataHandlers.put("scShapes", (p, t) -> { dataHandlers.put("scShapes", (p, t) -> {
if (CarpetClient.shapes != null) if (CarpetClient.shapes != null)
{
CarpetClient.shapes.addShapes((ListTag) t); CarpetClient.shapes.addShapes((ListTag) t);
}
}); });
dataHandlers.put("clientCommand", (p, t) -> { dataHandlers.put("clientCommand", (p, t) -> CarpetClient.onClientCommand(t));
CarpetClient.onClientCommand(t);
});
} }
// Ran on the Main Minecraft Thread // Ran on the Main Minecraft Thread
@@ -127,8 +139,10 @@ public class ClientNetworkHandler
{ {
for (String key : compound.getAllKeys()) for (String key : compound.getAllKeys())
{ {
if (dataHandlers.containsKey(key)) { if (dataHandlers.containsKey(key))
try { {
try
{
dataHandlers.get(key).accept(player, compound.get(key)); dataHandlers.get(key).accept(player, compound.get(key));
} }
catch (Exception exc) catch (Exception exc)
@@ -137,9 +151,11 @@ public class ClientNetworkHandler
} }
} }
else else
{
CarpetSettings.LOG.error("Unknown carpet data: " + key); CarpetSettings.LOG.error("Unknown carpet data: " + key);
} }
} }
}
public static void clientCommand(String command) public static void clientCommand(String command)
{ {
@@ -56,16 +56,24 @@ public class ServerNetworkHandler
validCarpetPlayers.add(playerEntity); validCarpetPlayers.add(playerEntity);
remoteCarpetPlayers.put(playerEntity, version); remoteCarpetPlayers.put(playerEntity, version);
if (version.equals(CarpetSettings.carpetVersion)) if (version.equals(CarpetSettings.carpetVersion))
{
CarpetSettings.LOG.info("Player " + playerEntity.getName().getString() + " joined with a matching carpet client"); CarpetSettings.LOG.info("Player " + playerEntity.getName().getString() + " joined with a matching carpet client");
}
else else
{
CarpetSettings.LOG.warn("Player " + playerEntity.getName().getString() + " joined with another carpet version: " + version); CarpetSettings.LOG.warn("Player " + playerEntity.getName().getString() + " joined with another carpet version: " + version);
}
DataBuilder data = DataBuilder.create(playerEntity.server); // tickrate related settings are sent on world change DataBuilder data = DataBuilder.create(playerEntity.server); // tickrate related settings are sent on world change
CarpetServer.forEachManager(sm -> sm.getCarpetRules().forEach(data::withRule)); CarpetServer.forEachManager(sm -> sm.getCarpetRules().forEach(data::withRule));
playerEntity.connection.send(data.build()); playerEntity.connection.send(data.build());
} }
public static void sendPlayerLevelData(ServerPlayer player, ServerLevel level) { public static void sendPlayerLevelData(ServerPlayer player, ServerLevel level)
if (CarpetSettings.superSecretSetting || !validCarpetPlayers.contains(player)) return; {
if (CarpetSettings.superSecretSetting || !validCarpetPlayers.contains(player))
{
return;
}
DataBuilder data = DataBuilder.create(player.server).withTickRate().withFrozenState().withTickPlayerActiveTimeout(); // .withSuperHotState() DataBuilder data = DataBuilder.create(player.server).withTickRate().withFrozenState().withTickPlayerActiveTimeout(); // .withSuperHotState()
player.connection.send(data.build()); player.connection.send(data.build());
} }
@@ -90,10 +98,19 @@ public class ServerNetworkHandler
CompoundTag result = new CompoundTag(); CompoundTag result = new CompoundTag();
result.putString("id", id); result.putString("id", id);
result.putInt("code", resultCode); result.putInt("code", resultCode);
if (error[0] != null) result.putString("error", error[0].getContents().toString()); if (error[0] != null)
{
result.putString("error", error[0].getContents().toString());
}
ListTag outputResult = new ListTag(); ListTag outputResult = new ListTag();
for (Component line: output) outputResult.add(StringTag.valueOf(Component.Serializer.toJson(line))); for (Component line : output)
if (!output.isEmpty()) result.put("output", outputResult); {
outputResult.add(StringTag.valueOf(Component.Serializer.toJson(line)));
}
if (!output.isEmpty())
{
result.put("output", outputResult);
}
player.connection.send(DataBuilder.create(player.server).withCustomNbt("clientCommand", result).build()); player.connection.send(DataBuilder.create(player.server).withCustomNbt("clientCommand", result).build());
// run command plug to command output, // run command plug to command output,
} }
@@ -103,15 +120,22 @@ public class ServerNetworkHandler
for (String key : compound.getAllKeys()) for (String key : compound.getAllKeys())
{ {
if (dataHandlers.containsKey(key)) if (dataHandlers.containsKey(key))
{
dataHandlers.get(key).accept(player, compound.get(key)); dataHandlers.get(key).accept(player, compound.get(key));
}
else else
{
CarpetSettings.LOG.warn("Unknown carpet client data: " + key); CarpetSettings.LOG.warn("Unknown carpet client data: " + key);
} }
} }
}
public static void updateRuleWithConnectedClients(CarpetRule<?> rule) public static void updateRuleWithConnectedClients(CarpetRule<?> rule)
{ {
if (CarpetSettings.superSecretSetting) return; if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : remoteCarpetPlayers.keySet()) for (ServerPlayer player : remoteCarpetPlayers.keySet())
{ {
player.connection.send(DataBuilder.create(player.server).withRule(rule).build()); player.connection.send(DataBuilder.create(player.server).withRule(rule).build());
@@ -120,7 +144,10 @@ public class ServerNetworkHandler
public static void updateTickSpeedToConnectedPlayers(MinecraftServer server) public static void updateTickSpeedToConnectedPlayers(MinecraftServer server)
{ {
if (CarpetSettings.superSecretSetting) return; if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers) for (ServerPlayer player : validCarpetPlayers)
{ {
player.connection.send(DataBuilder.create(player.server).withTickRate().build()); player.connection.send(DataBuilder.create(player.server).withTickRate().build());
@@ -129,7 +156,10 @@ public class ServerNetworkHandler
public static void updateFrozenStateToConnectedPlayers(MinecraftServer server) public static void updateFrozenStateToConnectedPlayers(MinecraftServer server)
{ {
if (CarpetSettings.superSecretSetting) return; if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers) for (ServerPlayer player : validCarpetPlayers)
{ {
player.connection.send(DataBuilder.create(player.server).withFrozenState().build()); player.connection.send(DataBuilder.create(player.server).withFrozenState().build());
@@ -138,7 +168,10 @@ public class ServerNetworkHandler
public static void updateSuperHotStateToConnectedPlayers(MinecraftServer server) public static void updateSuperHotStateToConnectedPlayers(MinecraftServer server)
{ {
if(CarpetSettings.superSecretSetting) return; if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers) for (ServerPlayer player : validCarpetPlayers)
{ {
player.connection.send(DataBuilder.create(player.server).withSuperHotState().build()); player.connection.send(DataBuilder.create(player.server).withSuperHotState().build());
@@ -147,7 +180,10 @@ public class ServerNetworkHandler
public static void updateTickPlayerActiveTimeoutToConnectedPlayers(MinecraftServer server) public static void updateTickPlayerActiveTimeoutToConnectedPlayers(MinecraftServer server)
{ {
if (CarpetSettings.superSecretSetting) return; if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers) for (ServerPlayer player : validCarpetPlayers)
{ {
player.connection.send(DataBuilder.create(player.server).withTickPlayerActiveTimeout().build()); player.connection.send(DataBuilder.create(player.server).withTickPlayerActiveTimeout().build());
@@ -156,7 +192,10 @@ public class ServerNetworkHandler
public static void broadcastCustomCommand(String command, Tag data) public static void broadcastCustomCommand(String command, Tag data)
{ {
if (CarpetSettings.superSecretSetting) return; if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers) for (ServerPlayer player : validCarpetPlayers)
{ {
player.connection.send(DataBuilder.create(player.server).withCustomNbt(command, data).build()); player.connection.send(DataBuilder.create(player.server).withCustomNbt(command, data).build());
@@ -175,8 +214,10 @@ public class ServerNetworkHandler
{ {
validCarpetPlayers.remove(player); validCarpetPlayers.remove(player);
if (!((ServerGamePacketListenerImplInterface) player.connection).getConnection().isMemoryConnection()) if (!((ServerGamePacketListenerImplInterface) player.connection).getConnection().isMemoryConnection())
{
remoteCarpetPlayers.remove(player); remoteCarpetPlayers.remove(player);
} }
}
public static void close() public static void close()
{ {
@@ -186,15 +227,24 @@ public class ServerNetworkHandler
public static boolean isValidCarpetPlayer(ServerPlayer player) public static boolean isValidCarpetPlayer(ServerPlayer player)
{ {
if (CarpetSettings.superSecretSetting) return false; if (CarpetSettings.superSecretSetting)
{
return false;
}
return validCarpetPlayers.contains(player); return validCarpetPlayers.contains(player);
} }
public static String getPlayerStatus(ServerPlayer player) public static String getPlayerStatus(ServerPlayer player)
{ {
if (remoteCarpetPlayers.containsKey(player)) return "carpet "+remoteCarpetPlayers.get(player); if (remoteCarpetPlayers.containsKey(player))
if (validCarpetPlayers.contains(player)) return "carpet "+CarpetSettings.carpetVersion; {
return "carpet " + remoteCarpetPlayers.get(player);
}
if (validCarpetPlayers.contains(player))
{
return "carpet " + CarpetSettings.carpetVersion;
}
return "vanilla"; return "vanilla";
} }
@@ -202,21 +252,25 @@ public class ServerNetworkHandler
{ {
private CompoundTag tag; private CompoundTag tag;
private MinecraftServer server; private MinecraftServer server;
private static DataBuilder create(final MinecraftServer server) private static DataBuilder create(final MinecraftServer server)
{ {
return new DataBuilder(server); return new DataBuilder(server);
} }
private DataBuilder(MinecraftServer server) private DataBuilder(MinecraftServer server)
{ {
tag = new CompoundTag(); tag = new CompoundTag();
this.server = server; this.server = server;
} }
private DataBuilder withTickRate() private DataBuilder withTickRate()
{ {
ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager(); ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager();
tag.putFloat("TickRate", trm.tickrate()); tag.putFloat("TickRate", trm.tickrate());
return this; return this;
} }
private DataBuilder withFrozenState() private DataBuilder withFrozenState()
{ {
ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager(); ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager();
@@ -226,18 +280,21 @@ public class ServerNetworkHandler
tag.put("TickingState", tickingState); tag.put("TickingState", tickingState);
return this; return this;
} }
private DataBuilder withSuperHotState() private DataBuilder withSuperHotState()
{ {
ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager(); ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager();
tag.putBoolean("SuperHotState", trm.isSuperHot()); tag.putBoolean("SuperHotState", trm.isSuperHot());
return this; return this;
} }
private DataBuilder withTickPlayerActiveTimeout() private DataBuilder withTickPlayerActiveTimeout()
{ {
ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager(); ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager();
tag.putInt("TickPlayerActiveTimeout", trm.getPlayerActiveTimeout()); tag.putInt("TickPlayerActiveTimeout", trm.getPlayerActiveTimeout());
return this; return this;
} }
private DataBuilder withRule(CarpetRule<?> rule) private DataBuilder withRule(CarpetRule<?> rule)
{ {
CompoundTag rules = (CompoundTag) tag.get("Rules"); CompoundTag rules = (CompoundTag) tag.get("Rules");
@@ -248,7 +305,10 @@ public class ServerNetworkHandler
} }
String identifier = rule.settingsManager().identifier(); String identifier = rule.settingsManager().identifier();
String key = rule.name(); String key = rule.name();
while (rules.contains(key)) { key = key+"2";} while (rules.contains(key))
{
key = key + "2";
}
CompoundTag ruleNBT = new CompoundTag(); CompoundTag ruleNBT = new CompoundTag();
ruleNBT.putString("Value", RuleHelper.toRuleString(rule.value())); ruleNBT.putString("Value", RuleHelper.toRuleString(rule.value()));
ruleNBT.putString("Manager", identifier); ruleNBT.putString("Manager", identifier);