Skip to content

Commit

Permalink
refactor things
Browse files Browse the repository at this point in the history
  • Loading branch information
sakura-ryoko committed Jun 12, 2024
1 parent 399a1d4 commit ae64b19
Show file tree
Hide file tree
Showing 14 changed files with 25 additions and 99 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,10 @@ public String getDescription()
}

@Override
public Identifier getNetworkChannel() { return this.networkChannel; }
public Identifier getNetworkChannel()
{
return this.networkChannel;
}

@Override
public int getProtocolVersion()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import net.minecraft.server.MinecraftServer;
import net.minecraft.util.Identifier;
import fi.dy.masa.servux.network.server.IPluginServerPlayHandler;
import fi.dy.masa.servux.network.IPluginServerPlayHandler;

public interface IDataProvider
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,24 @@
import net.minecraft.world.chunk.WorldChunk;
import net.minecraft.world.gen.structure.Structure;
import fi.dy.masa.servux.Reference;
import fi.dy.masa.servux.network.handler.ServuxStructuresHandler;
import fi.dy.masa.servux.network.handler.ServuxStructuresPacket;
import fi.dy.masa.servux.network.server.IPluginServerPlayHandler;
import fi.dy.masa.servux.network.server.ServerPlayHandler;
import fi.dy.masa.servux.network.packet.ServuxStructuresHandler;
import fi.dy.masa.servux.network.packet.ServuxStructuresPacket;
import fi.dy.masa.servux.network.IPluginServerPlayHandler;
import fi.dy.masa.servux.network.ServerPlayHandler;
import fi.dy.masa.servux.util.PlayerDimensionPosition;
import fi.dy.masa.servux.util.Timeout;

public class StructureDataProvider extends DataProviderBase
{
public static final StructureDataProvider INSTANCE = new StructureDataProvider();

//protected final static ServuxStructuresHandlerOld<ServuxStructuresPayloadOld> OLD_HANDLER = ServuxStructuresHandlerOld.getInstance();
protected final static ServuxStructuresHandler<ServuxStructuresPacket.Payload> HANDLER = ServuxStructuresHandler.getInstance();
protected final Map<UUID, PlayerDimensionPosition> registeredPlayers = new HashMap<>();
protected final Map<UUID, Map<ChunkPos, Timeout>> timeouts = new HashMap<>();
protected final NbtCompound metadata = new NbtCompound();
protected int timeout = 30 * 20;
protected int updateInterval = 40;
protected int retainDistance;
//protected final int MAX_STRUCTURE_SIZE = 1572864;
// Maximum structure size of one Nbt packet (2097152)

// FIXME --> Move out of structures channel in the future
private BlockPos spawnPos = BlockPos.ORIGIN;
Expand Down Expand Up @@ -78,10 +75,6 @@ public void setEnabled(boolean toggle)
@Override
public void registerHandler()
{
//ServerPlayHandler.getInstance().registerServerPlayHandler(OLD_HANDLER);
//OLD_HANDLER.registerPlayPayload(ServuxStructuresPayloadOld.TYPE, ServuxStructuresPayloadOld.CODEC, IPluginServerPlayHandler.BOTH_SERVER);
//OLD_HANDLER.registerPlayReceiver(ServuxStructuresPayloadOld.TYPE, OLD_HANDLER::receivePlayPayload);

ServerPlayHandler.getInstance().registerServerPlayHandler(HANDLER);
HANDLER.registerPlayPayload(ServuxStructuresPacket.Payload.ID, ServuxStructuresPacket.Payload.CODEC, IPluginServerPlayHandler.BOTH_SERVER);
HANDLER.registerPlayReceiver(ServuxStructuresPacket.Payload.ID, HANDLER::receivePlayPayload);
Expand All @@ -90,9 +83,6 @@ public void registerHandler()
@Override
public void unregisterHandler()
{
//OLD_HANDLER.unregisterPlayReceiver();
//ServerPlayHandler.getInstance().unregisterServerPlayHandler(OLD_HANDLER);

HANDLER.unregisterPlayReceiver();
ServerPlayHandler.getInstance().unregisterServerPlayHandler(HANDLER);
}
Expand Down Expand Up @@ -196,10 +186,6 @@ public boolean register(ServerPlayerEntity player)
{
NbtCompound nbt = new NbtCompound();
nbt.copyFrom(this.metadata);
//nbt.putInt("packetType", ServuxStructuresHandlerOld.PACKET_S2C_METADATA);

// Using the networkHandler method allows this to work
//OLD_HANDLER.sendPlayPayload(handler, new ServuxStructuresPayloadOld(nbt));

HANDLER.sendPlayPayload(handler, new ServuxStructuresPacket.Payload(new ServuxStructuresPacket(ServuxStructuresPacket.Type.PACKET_S2C_METADATA, nbt)));
this.initialSyncStructuresToPlayerWithinRange(player, player.getServer().getPlayerManager().getViewDistance()+2, tickCounter);
Expand All @@ -214,7 +200,6 @@ public boolean register(ServerPlayerEntity player)
public boolean unregister(ServerPlayerEntity player)
{
// System.out.printf("unregister\n");
//OLD_HANDLER.resetFailures(this.getNetworkChannel(), player);
HANDLER.resetFailures(this.getNetworkChannel(), player);

return this.registeredPlayers.remove(player.getUuid()) != null;
Expand Down Expand Up @@ -481,60 +466,12 @@ protected void sendStructures(ServerPlayerEntity player,
if (this.registeredPlayers.containsKey(player.getUuid()))
{
NbtCompound test = new NbtCompound();
//test.putInt("packetType", ServuxStructuresHandlerOld.PACKET_S2C_STRUCTURE_DATA);
test.put("Structures", structureList.copy());
HANDLER.encodeStructuresPacket(player, new ServuxStructuresPacket(ServuxStructuresPacket.Type.PACKET_S2C_STRUCTURE_DATA_START, test));

/*
NbtList splitList = new NbtList();
for (int i = 0; i < structureList.size(); i++)
{
NbtCompound structure = structureList.getCompound(i);
int structureSize = structure.getSizeInBytes();
if ((splitList.getSizeInBytes() + structureSize + 42) > MAX_STRUCTURE_SIZE)
{
this.sendStructurePacket(player, splitList, useApi);
splitList.clear();
splitList = new NbtList();
}
if (structureSize < MAX_STRUCTURE_SIZE)
{
splitList.add(structure);
}
// Ignore if a single Structure exceeds the allowed value (very unlikely)
}
if (splitList.size() > 0)
{
this.sendStructurePacket(player, splitList, useApi);
}
*/
}
}
}

/*
private void sendStructurePacket(ServerPlayerEntity player, NbtList structureList, boolean useApi)
{
//Servux.logger.warn("sendStructurePacket(): count [{}], listSize {}", structureList.size(), structureList.getSizeInBytes());
NbtCompound tag = new NbtCompound();
tag.put("Structures", structureList);
tag.putInt("packetType", ServuxStructuresHandlerOld.PACKET_S2C_STRUCTURE_DATA);
if (useApi)
{
OLD_HANDLER.encodeNbtCompound(player, tag);
}
else
{
OLD_HANDLER.sendPlayPayload(player.networkHandler, new ServuxStructuresPayloadOld(tag));
}
}
*/

protected NbtList getStructureList(Map<ChunkPos, StructureStart> structures, ServerWorld world)
{
NbtList list = new NbtList();
Expand All @@ -555,15 +492,13 @@ public void refreshSpawnMetadata(ServerPlayerEntity player, @Nullable NbtCompoun
NbtCompound nbt = new NbtCompound();
BlockPos spawnPos = StructureDataProvider.INSTANCE.getSpawnPos();

//nbt.putInt("packetType", ServuxStructuresHandlerOld.PACKET_S2C_SPAWN_METADATA);
nbt.putString("id", getNetworkChannel().toString());
nbt.putString("servux", Reference.MOD_STRING);
nbt.putInt("spawnPosX", spawnPos.getX());
nbt.putInt("spawnPosY", spawnPos.getY());
nbt.putInt("spawnPosZ", spawnPos.getZ());
nbt.putInt("spawnChunkRadius", StructureDataProvider.INSTANCE.getSpawnChunkRadius());

//OLD_HANDLER.encodeNbtCompound(player, nbt);
HANDLER.encodeStructuresPacket(player, new ServuxStructuresPacket(ServuxStructuresPacket.Type.PACKET_S2C_SPAWN_METADATA, nbt));
}

Expand Down
10 changes: 2 additions & 8 deletions src/main/java/fi/dy/masa/servux/mixin/MixinMinecraftServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,8 @@ private void servux_onTickEnd(BooleanSupplier supplier, CallbackInfo ci)
private void servux_onPrepareStartRegion(WorldGenerationProgressListener worldGenerationProgressListener, CallbackInfo ci,
ServerWorld serverWorld, BlockPos blockPos, ServerChunkManager serverChunkManager, int i)
{
if (StructureDataProvider.INSTANCE.getSpawnPos().equals(blockPos) == false)
{
StructureDataProvider.INSTANCE.setSpawnPos(blockPos);
}
if (StructureDataProvider.INSTANCE.getSpawnChunkRadius() != i)
{
StructureDataProvider.INSTANCE.setSpawnChunkRadius(i);
}
StructureDataProvider.INSTANCE.setSpawnPos(blockPos);
StructureDataProvider.INSTANCE.setSpawnChunkRadius(i);
}

@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;setupServer()Z"), method = "runServer")
Expand Down
10 changes: 2 additions & 8 deletions src/main/java/fi/dy/masa/servux/mixin/MixinServerWorld.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,7 @@ public class MixinServerWorld
@Inject(method = "setSpawnPos", at = @At("TAIL"))
private void servux_onSetSpawnPos(BlockPos pos, float angle, CallbackInfo ci)
{
if (StructureDataProvider.INSTANCE.getSpawnPos().equals(pos) == false)
{
StructureDataProvider.INSTANCE.setSpawnPos(pos);
}
if (StructureDataProvider.INSTANCE.getSpawnChunkRadius() != (this.spawnChunkRadius - 1))
{
StructureDataProvider.INSTANCE.setSpawnChunkRadius((this.spawnChunkRadius - 1));
}
StructureDataProvider.INSTANCE.setSpawnPos(pos);
StructureDataProvider.INSTANCE.setSpawnChunkRadius((this.spawnChunkRadius - 1));
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fi.dy.masa.servux.network.server;
package fi.dy.masa.servux.network;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fi.dy.masa.servux.network.server;
package fi.dy.masa.servux.network;

import javax.annotation.Nullable;
import net.minecraft.network.PacketByteBuf;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fi.dy.masa.servux.network.server;
package fi.dy.masa.servux.network;

import net.minecraft.network.packet.CustomPayload;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fi.dy.masa.servux.network.server;
package fi.dy.masa.servux.network;

import javax.annotation.Nullable;
import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fi.dy.masa.servux.network.server;
package fi.dy.masa.servux.network;

import com.google.common.collect.ArrayListMultimap;
import org.jetbrains.annotations.ApiStatus;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fi.dy.masa.servux.network.server;
package fi.dy.masa.servux.network;

import io.netty.buffer.ByteBuf;
import net.minecraft.network.PacketByteBuf;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fi.dy.masa.servux.network.handler;
package fi.dy.masa.servux.network.packet;

import java.util.HashMap;
import java.util.Map;
Expand All @@ -14,8 +14,8 @@
import net.minecraft.util.Identifier;
import fi.dy.masa.servux.Servux;
import fi.dy.masa.servux.dataproviders.StructureDataProvider;
import fi.dy.masa.servux.network.server.IPluginServerPlayHandler;
import fi.dy.masa.servux.network.server.PacketSplitter;
import fi.dy.masa.servux.network.IPluginServerPlayHandler;
import fi.dy.masa.servux.network.PacketSplitter;

@Environment(EnvType.SERVER)
public abstract class ServuxStructuresHandler<T extends CustomPayload> implements IPluginServerPlayHandler<T>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package fi.dy.masa.servux.network.handler;
package fi.dy.masa.servux.network.packet;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
Expand All @@ -8,7 +8,7 @@
import net.minecraft.network.codec.PacketCodec;
import net.minecraft.network.packet.CustomPayload;
import fi.dy.masa.servux.Servux;
import fi.dy.masa.servux.network.server.IServerPayloadData;
import fi.dy.masa.servux.network.IServerPayloadData;

public class ServuxStructuresPacket implements IServerPayloadData
{
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/fi/dy/masa/servux/util/PayloadUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import net.minecraft.network.PacketByteBuf;
import net.minecraft.network.RegistryByteBuf;
import net.minecraft.registry.DynamicRegistryManager;
import fi.dy.masa.servux.network.server.ServuxBuf;
import fi.dy.masa.servux.network.ServuxBuf;

public class PayloadUtils
{
Expand Down

0 comments on commit ae64b19

Please sign in to comment.