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
+143 -56

No files matched your search

+19 -8
View File
@@ -16,17 +16,20 @@ public class CarpetClient
{
public record CarpetPayload(CompoundTag data) implements CustomPacketPayload
{
public CarpetPayload(FriendlyByteBuf input) {
public CarpetPayload(FriendlyByteBuf input)
{
this(input.readNbt());
}
@Override
public void write(FriendlyByteBuf output) {
public void write(FriendlyByteBuf output)
{
output.writeNbt(data);
}
@Override
public ResourceLocation id() {
public ResourceLocation id()
{
return CARPET_CHANNEL;
}
}
@@ -78,7 +81,10 @@ public class CarpetClient
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);
return true;
}
@@ -86,15 +92,20 @@ public class CarpetClient
public static void onClientCommand(Tag t)
{
CarpetSettings.LOG.info("Server Response:");
CompoundTag tag = (CompoundTag)t;
CarpetSettings.LOG.info(" - id: "+tag.getString("id"));
CarpetSettings.LOG.info(" - code: "+tag.getInt("code"));
if (tag.contains("error")) CarpetSettings.LOG.warn(" - error: "+tag.getString("error"));
CompoundTag tag = (CompoundTag) t;
CarpetSettings.LOG.info(" - id: " + tag.getString("id"));
CarpetSettings.LOG.info(" - code: " + tag.getInt("code"));
if (tag.contains("error"))
{
CarpetSettings.LOG.warn(" - error: " + tag.getString("error"));
}
if (tag.contains("output"))
{
ListTag outputTag = (ListTag) tag.get("output");
for (int i = 0; i < outputTag.size(); i++)
{
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.helpers.TickRateManager;
import carpet.api.settings.SettingsManager;
import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.nbt.ByteTag;
import net.minecraft.nbt.CompoundTag;
@@ -22,12 +24,13 @@ import net.minecraft.network.protocol.common.ServerboundCustomPayloadPacket;
public class ClientNetworkHandler
{
private static final Map<String, BiConsumer<LocalPlayer, Tag>> dataHandlers = new HashMap<String, BiConsumer<LocalPlayer, Tag>>();
static
{
dataHandlers.put(CarpetClient.HI, (p, t) -> onHi(t.getAsString()));
dataHandlers.put("Rules", (p, t) -> {
CompoundTag ruleset = (CompoundTag)t;
for (String ruleKey: ruleset.getAllKeys())
CompoundTag ruleset = (CompoundTag) t;
for (String ruleKey : ruleset.getAllKeys())
{
CompoundTag ruleNBT = (CompoundTag) ruleset.get(ruleKey);
SettingsManager manager = null;
@@ -42,7 +45,8 @@ public class ClientNetworkHandler
}
else
{
for (CarpetExtension extension: CarpetServer.extensions) {
for (CarpetExtension extension : CarpetServer.extensions)
{
SettingsManager eManager = extension.extensionSettingsManager();
if (eManager != null && managerName.equals(eManager.identifier()))
{
@@ -61,38 +65,46 @@ public class ClientNetworkHandler
if (rule != null)
{
String value = ruleNBT.getString("Value");
try { rule.set(null, value); } catch (InvalidRuleValueException ignored) { }
try
{
rule.set(null, value);
}
catch (InvalidRuleValueException ignored)
{
}
}
}
});
dataHandlers.put("TickRate", (p, t) -> {
TickRateManager tickRateManager = ((LevelInterface)p.clientLevel).tickRateManager();
TickRateManager tickRateManager = ((LevelInterface) p.clientLevel).tickRateManager();
tickRateManager.setTickRate(((NumericTag) t).getAsFloat());
});
dataHandlers.put("TickingState", (p, t) -> {
CompoundTag tickingState = (CompoundTag)t;
TickRateManager tickRateManager = ((LevelInterface)p.clientLevel).tickRateManager();
CompoundTag tickingState = (CompoundTag) t;
TickRateManager tickRateManager = ((LevelInterface) p.clientLevel).tickRateManager();
tickRateManager.setFrozenState(tickingState.getBoolean("is_paused"), tickingState.getBoolean("deepFreeze"));
});
dataHandlers.put("SuperHotState", (p, t) -> {
TickRateManager tickRateManager = ((LevelInterface)p.clientLevel).tickRateManager();
tickRateManager.setSuperHot(((ByteTag) t).equals(ByteTag.ONE));
TickRateManager tickRateManager = ((LevelInterface) p.clientLevel).tickRateManager();
tickRateManager.setSuperHot(t.equals(ByteTag.ONE));
});
dataHandlers.put("TickPlayerActiveTimeout", (p, t) -> {
TickRateManager tickRateManager = ((LevelInterface)p.clientLevel).tickRateManager();
TickRateManager tickRateManager = ((LevelInterface) p.clientLevel).tickRateManager();
tickRateManager.setPlayerActiveTimeout(((NumericTag) t).getAsInt());
});
dataHandlers.put("scShape", (p, t) -> { // deprecated // and unused // should remove for 1.17
if (CarpetClient.shapes != null)
CarpetClient.shapes.addShape((CompoundTag)t);
{
CarpetClient.shapes.addShape((CompoundTag) t);
}
});
dataHandlers.put("scShapes", (p, t) -> {
if (CarpetClient.shapes != null)
{
CarpetClient.shapes.addShapes((ListTag) t);
}
});
dataHandlers.put("clientCommand", (p, t) -> {
CarpetClient.onClientCommand(t);
});
dataHandlers.put("clientCommand", (p, t) -> CarpetClient.onClientCommand(t));
}
// Ran on the Main Minecraft Thread
@@ -107,7 +119,7 @@ public class ClientNetworkHandler
}
else
{
CarpetSettings.LOG.warn("Joined carpet server with another carpet version: "+CarpetClient.serverCarpetVersion);
CarpetSettings.LOG.warn("Joined carpet server with another carpet version: " + CarpetClient.serverCarpetVersion);
}
// We can ensure that this packet is
// processed AFTER the player has joined
@@ -125,19 +137,23 @@ public class ClientNetworkHandler
public static void onServerData(CompoundTag compound, LocalPlayer player)
{
for (String key: compound.getAllKeys())
for (String key : compound.getAllKeys())
{
if (dataHandlers.containsKey(key)) {
try {
if (dataHandlers.containsKey(key))
{
try
{
dataHandlers.get(key).accept(player, compound.get(key));
}
catch (Exception exc)
{
CarpetSettings.LOG.info("Corrupt carpet data for "+key);
CarpetSettings.LOG.info("Corrupt carpet data for " + key);
}
}
else
CarpetSettings.LOG.error("Unknown carpet data: "+key);
{
CarpetSettings.LOG.error("Unknown carpet data: " + key);
}
}
}
@@ -34,12 +34,12 @@ public class ServerNetworkHandler
private static final Map<String, BiConsumer<ServerPlayer, Tag>> dataHandlers = Map.of(
CarpetClient.HELLO, (p, t) -> onHello(p, t.getAsString()),
"clientCommand", (p, t) -> handleClientCommand(p, (CompoundTag)t)
"clientCommand", (p, t) -> handleClientCommand(p, (CompoundTag) t)
);
public static void onPlayerJoin(ServerPlayer playerEntity)
{
if (!((ServerGamePacketListenerImplInterface)playerEntity.connection).getConnection().isMemoryConnection())
if (!((ServerGamePacketListenerImplInterface) playerEntity.connection).getConnection().isMemoryConnection())
{
CompoundTag data = new CompoundTag();
data.putString(CarpetClient.HI, CarpetSettings.carpetVersion);
@@ -56,16 +56,24 @@ public class ServerNetworkHandler
validCarpetPlayers.add(playerEntity);
remoteCarpetPlayers.put(playerEntity, version);
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
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
CarpetServer.forEachManager(sm -> sm.getCarpetRules().forEach(data::withRule));
playerEntity.connection.send(data.build());
}
public static void sendPlayerLevelData(ServerPlayer player, ServerLevel level) {
if (CarpetSettings.superSecretSetting || !validCarpetPlayers.contains(player)) return;
public static void sendPlayerLevelData(ServerPlayer player, ServerLevel level)
{
if (CarpetSettings.superSecretSetting || !validCarpetPlayers.contains(player))
{
return;
}
DataBuilder data = DataBuilder.create(player.server).withTickRate().withFrozenState().withTickPlayerActiveTimeout(); // .withSuperHotState()
player.connection.send(data.build());
}
@@ -90,28 +98,44 @@ public class ServerNetworkHandler
CompoundTag result = new CompoundTag();
result.putString("id", id);
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();
for (Component line: output) outputResult.add(StringTag.valueOf(Component.Serializer.toJson(line)));
if (!output.isEmpty()) result.put("output", outputResult);
for (Component line : output)
{
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());
// run command plug to command output,
}
public static void onClientData(ServerPlayer player, CompoundTag compound)
{
for (String key: compound.getAllKeys())
for (String key : compound.getAllKeys())
{
if (dataHandlers.containsKey(key))
{
dataHandlers.get(key).accept(player, compound.get(key));
}
else
CarpetSettings.LOG.warn("Unknown carpet client data: "+key);
{
CarpetSettings.LOG.warn("Unknown carpet client data: " + key);
}
}
}
public static void updateRuleWithConnectedClients(CarpetRule<?> rule)
{
if (CarpetSettings.superSecretSetting) return;
if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : remoteCarpetPlayers.keySet())
{
player.connection.send(DataBuilder.create(player.server).withRule(rule).build());
@@ -120,7 +144,10 @@ public class ServerNetworkHandler
public static void updateTickSpeedToConnectedPlayers(MinecraftServer server)
{
if (CarpetSettings.superSecretSetting) return;
if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers)
{
player.connection.send(DataBuilder.create(player.server).withTickRate().build());
@@ -129,7 +156,10 @@ public class ServerNetworkHandler
public static void updateFrozenStateToConnectedPlayers(MinecraftServer server)
{
if (CarpetSettings.superSecretSetting) return;
if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers)
{
player.connection.send(DataBuilder.create(player.server).withFrozenState().build());
@@ -138,7 +168,10 @@ public class ServerNetworkHandler
public static void updateSuperHotStateToConnectedPlayers(MinecraftServer server)
{
if(CarpetSettings.superSecretSetting) return;
if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers)
{
player.connection.send(DataBuilder.create(player.server).withSuperHotState().build());
@@ -147,7 +180,10 @@ public class ServerNetworkHandler
public static void updateTickPlayerActiveTimeoutToConnectedPlayers(MinecraftServer server)
{
if (CarpetSettings.superSecretSetting) return;
if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers)
{
player.connection.send(DataBuilder.create(player.server).withTickPlayerActiveTimeout().build());
@@ -156,7 +192,10 @@ public class ServerNetworkHandler
public static void broadcastCustomCommand(String command, Tag data)
{
if (CarpetSettings.superSecretSetting) return;
if (CarpetSettings.superSecretSetting)
{
return;
}
for (ServerPlayer player : validCarpetPlayers)
{
player.connection.send(DataBuilder.create(player.server).withCustomNbt(command, data).build());
@@ -174,8 +213,10 @@ public class ServerNetworkHandler
public static void onPlayerLoggedOut(ServerPlayer player)
{
validCarpetPlayers.remove(player);
if (!((ServerGamePacketListenerImplInterface)player.connection).getConnection().isMemoryConnection())
if (!((ServerGamePacketListenerImplInterface) player.connection).getConnection().isMemoryConnection())
{
remoteCarpetPlayers.remove(player);
}
}
public static void close()
@@ -186,15 +227,24 @@ public class ServerNetworkHandler
public static boolean isValidCarpetPlayer(ServerPlayer player)
{
if (CarpetSettings.superSecretSetting) return false;
if (CarpetSettings.superSecretSetting)
{
return false;
}
return validCarpetPlayers.contains(player);
}
public static String getPlayerStatus(ServerPlayer player)
{
if (remoteCarpetPlayers.containsKey(player)) return "carpet "+remoteCarpetPlayers.get(player);
if (validCarpetPlayers.contains(player)) return "carpet "+CarpetSettings.carpetVersion;
if (remoteCarpetPlayers.containsKey(player))
{
return "carpet " + remoteCarpetPlayers.get(player);
}
if (validCarpetPlayers.contains(player))
{
return "carpet " + CarpetSettings.carpetVersion;
}
return "vanilla";
}
@@ -202,42 +252,49 @@ public class ServerNetworkHandler
{
private CompoundTag tag;
private MinecraftServer server;
private static DataBuilder create(final MinecraftServer server)
{
return new DataBuilder(server);
}
private DataBuilder(MinecraftServer server)
{
tag = new CompoundTag();
this.server = server;
}
private DataBuilder withTickRate()
{
ServerTickRateManager trm = ((MinecraftServerInterface)server).getTickRateManager();
ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager();
tag.putFloat("TickRate", trm.tickrate());
return this;
}
private DataBuilder withFrozenState()
{
ServerTickRateManager trm = ((MinecraftServerInterface)server).getTickRateManager();
ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager();
CompoundTag tickingState = new CompoundTag();
tickingState.putBoolean("is_paused", trm.gameIsPaused());
tickingState.putBoolean("deepFreeze", trm.deeplyFrozen());
tag.put("TickingState", tickingState);
return this;
}
private DataBuilder withSuperHotState()
{
ServerTickRateManager trm = ((MinecraftServerInterface)server).getTickRateManager();
tag.putBoolean("SuperHotState", trm.isSuperHot());
return this;
ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager();
tag.putBoolean("SuperHotState", trm.isSuperHot());
return this;
}
private DataBuilder withTickPlayerActiveTimeout()
{
ServerTickRateManager trm = ((MinecraftServerInterface)server).getTickRateManager();
ServerTickRateManager trm = ((MinecraftServerInterface) server).getTickRateManager();
tag.putInt("TickPlayerActiveTimeout", trm.getPlayerActiveTimeout());
return this;
}
private DataBuilder withRule(CarpetRule<?> rule)
{
CompoundTag rules = (CompoundTag) tag.get("Rules");
@@ -248,7 +305,10 @@ public class ServerNetworkHandler
}
String identifier = rule.settingsManager().identifier();
String key = rule.name();
while (rules.contains(key)) { key = key+"2";}
while (rules.contains(key))
{
key = key + "2";
}
CompoundTag ruleNBT = new CompoundTag();
ruleNBT.putString("Value", RuleHelper.toRuleString(rule.value()));
ruleNBT.putString("Manager", identifier);