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:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public interface NetWorkUser {
|
||||
|
||||
Map<Integer, List<Integer>> furnitureView();
|
||||
|
||||
boolean usingClientMod();
|
||||
boolean clientModEnabled();
|
||||
|
||||
void setUsingClientMod(boolean usingClientMod);
|
||||
void setClientModState(boolean enable);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user