9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-24 17:39:30 +00:00

rename methods

This commit is contained in:
XiaoMoMi
2025-03-24 19:39:22 +08:00
parent ad332d5ec9
commit a8725bb789
7 changed files with 60 additions and 52 deletions

View File

@@ -161,16 +161,17 @@ public class BukkitNetworkManager implements NetworkManager, Listener {
this.onlineUsers.remove(player.getUniqueId());
}
// for mod
@EventHandler
public void onPlayerRegisterChannel(PlayerRegisterChannelEvent event) {
if (!event.getChannel().equals("craftengine:payload")) return;
if (!event.getChannel().equals(MOD_CHANNEL)) return;
Player player = event.getPlayer();
NetWorkUser user = getUser(player);
if (user == null) return;
user.setUsingClientMod(true);
user.setClientModState(true);
int blockRegistrySize = RegistryUtils.currentBlockRegistrySize();
byte[] payload = ("cp:" + blockRegistrySize).getBytes(StandardCharsets.UTF_8);
player.sendPluginMessage(plugin.bootstrap(), "craftengine:payload", payload);
player.sendPluginMessage(plugin.bootstrap(), MOD_CHANNEL, payload);
}
@Override

View File

@@ -69,37 +69,7 @@ public class PacketConsumers {
public static final TriConsumer<NetWorkUser, NMSPacketEvent, Object> LEVEL_CHUNK_WITH_LIGHT = (user, event, packet) -> {
try {
if (!user.usingClientMod()) {
BukkitServerPlayer player = (BukkitServerPlayer) user;
Object chunkData = Reflections.field$ClientboundLevelChunkWithLightPacket$chunkData.get(packet);
byte[] buffer = (byte[]) Reflections.field$ClientboundLevelChunkPacketData$buffer.get(chunkData);
ByteBuf buf = Unpooled.copiedBuffer(buffer);
FriendlyByteBuf friendlyByteBuf = new FriendlyByteBuf(buf);
FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer());
for (int i = 0, count = player.clientSideSectionCount(); i < count; i++) {
try {
MCSection mcSection = new MCSection(BLOCK_LIST, BIOME_LIST);
mcSection.readPacket(friendlyByteBuf);
PalettedContainer<Integer> container = mcSection.blockStateContainer();
Palette<Integer> palette = container.data().palette();
if (palette.canRemap()) {
palette.remap(PacketConsumers::remap);
} else {
for (int j = 0; j < 4096; j++) {
int state = container.get(j);
int newState = remap(state);
if (newState != state) {
container.set(j, newState);
}
}
}
mcSection.writePacket(newBuf);
} catch (Exception e) {
break;
}
}
Reflections.field$ClientboundLevelChunkPacketData$buffer.set(chunkData, newBuf.array());
} else {
if (user.clientModEnabled()) {
BukkitServerPlayer player = (BukkitServerPlayer) user;
Object chunkData = Reflections.field$ClientboundLevelChunkWithLightPacket$chunkData.get(packet);
byte[] buffer = (byte[]) Reflections.field$ClientboundLevelChunkPacketData$buffer.get(chunkData);
@@ -129,6 +99,36 @@ public class PacketConsumers {
}
}
Reflections.field$ClientboundLevelChunkPacketData$buffer.set(chunkData, newBuf.array());
} else {
BukkitServerPlayer player = (BukkitServerPlayer) user;
Object chunkData = Reflections.field$ClientboundLevelChunkWithLightPacket$chunkData.get(packet);
byte[] buffer = (byte[]) Reflections.field$ClientboundLevelChunkPacketData$buffer.get(chunkData);
ByteBuf buf = Unpooled.copiedBuffer(buffer);
FriendlyByteBuf friendlyByteBuf = new FriendlyByteBuf(buf);
FriendlyByteBuf newBuf = new FriendlyByteBuf(Unpooled.buffer());
for (int i = 0, count = player.clientSideSectionCount(); i < count; i++) {
try {
MCSection mcSection = new MCSection(BLOCK_LIST, BIOME_LIST);
mcSection.readPacket(friendlyByteBuf);
PalettedContainer<Integer> container = mcSection.blockStateContainer();
Palette<Integer> palette = container.data().palette();
if (palette.canRemap()) {
palette.remap(PacketConsumers::remap);
} else {
for (int j = 0; j < 4096; j++) {
int state = container.get(j);
int newState = remap(state);
if (newState != state) {
container.set(j, newState);
}
}
}
mcSection.writePacket(newBuf);
} catch (Exception e) {
break;
}
}
Reflections.field$ClientboundLevelChunkPacketData$buffer.set(chunkData, newBuf.array());
}
} catch (Exception e) {
CraftEngine.instance().logger().warn("Failed to handle ClientboundLevelChunkWithLightPacket", e);
@@ -137,7 +137,7 @@ public class PacketConsumers {
public static final BiConsumer<NetWorkUser, ByteBufPacketEvent> SECTION_BLOCK_UPDATE = (user, event) -> {
try {
if (!user.usingClientMod()) {
if (user.clientModEnabled()) {
FriendlyByteBuf buf = event.getBuffer();
long pos = buf.readLong();
int blocks = buf.readVarInt();
@@ -146,7 +146,7 @@ public class PacketConsumers {
for (int i = 0; i < blocks; i++) {
long k = buf.readVarLong();
positions[i] = (short) ((int) (k & 4095L));
states[i] = remap((int) (k >>> 12));
states[i] = remapMOD((int) (k >>> 12));
}
buf.clear();
buf.writeVarInt(event.packetID());
@@ -165,7 +165,7 @@ public class PacketConsumers {
for (int i = 0; i < blocks; i++) {
long k = buf.readVarLong();
positions[i] = (short) ((int) (k & 4095L));
states[i] = remapMOD((int) (k >>> 12));
states[i] = remap((int) (k >>> 12));
}
buf.clear();
buf.writeVarInt(event.packetID());
@@ -186,7 +186,7 @@ public class PacketConsumers {
FriendlyByteBuf buf = event.getBuffer();
BlockPos pos = buf.readBlockPos(buf);
int before = buf.readVarInt();
if (user.usingClientMod() && !BlockStateUtils.isVanillaBlock(before)) {
if (user.clientModEnabled() && !BlockStateUtils.isVanillaBlock(before)) {
return;
}
int state = remap(before);

View File

@@ -63,9 +63,9 @@ public class BukkitServerPlayer extends Player {
private Key lastUsedRecipe = null;
private boolean usingClientMod = false;
private Map<Integer, List<Integer>> furnitureView = new ConcurrentHashMap<>();
private boolean hasClientMod = false;
// for better fake furniture visual sync
private final Map<Integer, List<Integer>> furnitureView = new ConcurrentHashMap<>();
public BukkitServerPlayer(BukkitCraftEngine plugin, Channel channel) {
this.channel = channel;
@@ -619,11 +619,11 @@ public class BukkitServerPlayer extends Player {
this.lastUsedRecipe = lastUsedRecipe;
}
public boolean usingClientMod() {
return this.usingClientMod;
public boolean clientModEnabled() {
return this.hasClientMod;
}
public void setUsingClientMod(boolean usingClientMod) {
this.usingClientMod = usingClientMod;
public void setClientModState(boolean enable) {
this.hasClientMod = enable;
}
}

View File

@@ -37,7 +37,7 @@ public interface NetWorkUser {
Map<Integer, List<Integer>> furnitureView();
boolean usingClientMod();
boolean clientModEnabled();
void setUsingClientMod(boolean usingClientMod);
void setClientModState(boolean enable);
}

View File

@@ -6,6 +6,8 @@ import net.momirealms.craftengine.core.entity.player.Player;
import java.util.Collection;
public interface NetworkManager {
String MOD_CHANNEL = "craftengine:payload";
void setUser(Channel channel, NetWorkUser user);
NetWorkUser getUser(Channel channel);

View File

@@ -49,6 +49,11 @@ mojang_brigadier_version=1.0.18
byte_buddy_version=1.15.11
snake_yaml_version=2.3
anti_grief_version=0.13
# Ignite Dependencies
mixinextras_version=0.4.1
mixin_version=0.15.2+mixin.0.8.7
ignite_version=1.1.0
tiny_remapper_version=0.10.4
# Fabric Dependencies
fabric_version=0.119.2+1.21.4
yarn_mappings=1.21.4+build.8

View File

@@ -14,11 +14,11 @@ repositories {
dependencies {
implementation(project(":shared"))
remapper("net.fabricmc:tiny-remapper:0.10.4:fat")
paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:1.21.4-R0.1-SNAPSHOT")
compileOnly("space.vectrix.ignite:ignite-api:1.1.0")
compileOnly("net.fabricmc:sponge-mixin:0.15.2+mixin.0.8.7")
compileOnly("io.github.llamalad7:mixinextras-common:0.4.1")
remapper("net.fabricmc:tiny-remapper:${rootProject.properties["tiny_remapper_version"]}:fat")
paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:${property("latest_minecraft_version")}-R0.1-SNAPSHOT")
compileOnly("space.vectrix.ignite:ignite-api:${rootProject.properties["ignite_version"]}")
compileOnly("net.fabricmc:sponge-mixin:${rootProject.properties["mixin_version"]}")
compileOnly("io.github.llamalad7:mixinextras-common:${rootProject.properties["mixinextras_version"]}")
}
java {