mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-17 19:35:00 -04:00
remove PacketHandler.java (handle packets in Packets classes)
This commit is contained in:
parent
1aecd27657
commit
90476fecb3
@ -45,7 +45,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
public class Connection {
|
||||
public static int lastConnectionId;
|
||||
private final Network network = Network.getNetworkInstance(this);
|
||||
private final PacketHandler handler = new PacketHandler(this);
|
||||
private final PacketSender sender = new PacketSender(this);
|
||||
private final LinkedBlockingQueue<ClientboundPacket> handlingQueue = new LinkedBlockingQueue<>();
|
||||
private final VelocityHandler velocityHandler = new VelocityHandler(this);
|
||||
@ -159,10 +158,6 @@ public class Connection {
|
||||
}
|
||||
}
|
||||
|
||||
public PacketHandler getHandler() {
|
||||
return this.handler;
|
||||
}
|
||||
|
||||
public void handle(ClientboundPacket p) {
|
||||
this.handlingQueue.add(p);
|
||||
}
|
||||
@ -213,7 +208,7 @@ public class Connection {
|
||||
if (fireEvent(event)) {
|
||||
continue;
|
||||
}
|
||||
packet.handle(getHandler());
|
||||
packet.handle(this);
|
||||
} catch (Throwable e) {
|
||||
Log.printException(e, LogLevels.PROTOCOL);
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.network.Network;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.packets.ServerboundPacket;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.interfaces.PacketCompressionInterface;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.interfaces.CompressionThresholdChange;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketEncryptionRequest;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketLoginSuccess;
|
||||
import de.bixilon.minosoft.protocol.packets.serverbound.login.PacketEncryptionResponse;
|
||||
@ -210,7 +210,7 @@ public class SocketNetwork implements Network {
|
||||
// set special settings to avoid miss timing issues
|
||||
if (packetInstance instanceof PacketLoginSuccess) {
|
||||
this.connection.setConnectionState(ConnectionStates.PLAY);
|
||||
} else if (packetInstance instanceof PacketCompressionInterface compressionPacket) {
|
||||
} else if (packetInstance instanceof CompressionThresholdChange compressionPacket) {
|
||||
this.compressionThreshold = compressionPacket.getThreshold();
|
||||
} else if (packetInstance instanceof PacketEncryptionRequest) {
|
||||
// wait until response is ready
|
||||
|
@ -13,12 +13,12 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets;
|
||||
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
// packet to send to client
|
||||
public interface ClientboundPacket extends Packet {
|
||||
boolean read(InByteBuffer buffer) throws Exception;
|
||||
public abstract class ClientboundPacket implements Packet {
|
||||
public abstract boolean read(InByteBuffer buffer) throws Exception;
|
||||
|
||||
void handle(PacketHandler h);
|
||||
public void handle(Connection connection) {
|
||||
}
|
||||
}
|
||||
|
@ -15,6 +15,6 @@ package de.bixilon.minosoft.protocol.packets.clientbound.interfaces;
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
|
||||
public interface PacketCompressionInterface extends ClientboundPacket {
|
||||
int getThreshold();
|
||||
public abstract class CompressionThresholdChange extends ClientboundPacket {
|
||||
public abstract int getThreshold();
|
||||
}
|
@ -14,11 +14,17 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.login;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.packets.serverbound.login.PacketEncryptionResponse;
|
||||
import de.bixilon.minosoft.protocol.protocol.CryptManager;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEncryptionRequest implements ClientboundPacket {
|
||||
import javax.crypto.SecretKey;
|
||||
import java.math.BigInteger;
|
||||
import java.security.PublicKey;
|
||||
|
||||
public class PacketEncryptionRequest extends ClientboundPacket {
|
||||
|
||||
String serverId; // normally empty
|
||||
byte[] publicKey;
|
||||
@ -33,8 +39,12 @@ public class PacketEncryptionRequest implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
SecretKey secretKey = CryptManager.createNewSharedKey();
|
||||
PublicKey publicKey = CryptManager.decodePublicKey(getPublicKey());
|
||||
String serverHash = new BigInteger(CryptManager.getServerHash(getServerId(), publicKey, secretKey)).toString(16);
|
||||
connection.getPlayer().getAccount().join(serverHash);
|
||||
connection.sendPacket(new PacketEncryptionResponse(secretKey, getVerifyToken(), publicKey));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -15,11 +15,12 @@ package de.bixilon.minosoft.protocol.packets.clientbound.login;
|
||||
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.LoginDisconnectEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketLoginDisconnect implements ClientboundPacket {
|
||||
public class PacketLoginDisconnect extends ClientboundPacket {
|
||||
ChatComponent reason;
|
||||
|
||||
@Override
|
||||
@ -29,8 +30,10 @@ public class PacketLoginDisconnect implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new LoginDisconnectEvent(connection, getReason()));
|
||||
Log.info(String.format("Disconnecting from server (reason=%s)", getReason().getANSIColoredMessage()));
|
||||
connection.disconnect();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,12 +14,12 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.login;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.LoginPluginMessageRequestEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketLoginPluginRequest implements ClientboundPacket {
|
||||
public class PacketLoginPluginRequest extends ClientboundPacket {
|
||||
int messageId;
|
||||
String channel;
|
||||
byte[] data;
|
||||
@ -35,8 +35,8 @@ public class PacketLoginPluginRequest implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new LoginPluginMessageRequestEvent(this.connection, this));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,11 +14,10 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.login;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.interfaces.PacketCompressionInterface;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.interfaces.CompressionThresholdChange;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketLoginSetCompression implements PacketCompressionInterface {
|
||||
public class PacketLoginSetCompression extends CompressionThresholdChange {
|
||||
int threshold;
|
||||
|
||||
@Override
|
||||
@ -27,11 +26,6 @@ public class PacketLoginSetCompression implements PacketCompressionInterface {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received set compression packet (threshold=%d)", this.threshold));
|
||||
|
@ -16,12 +16,11 @@ package de.bixilon.minosoft.protocol.packets.clientbound.login;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.Util;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class PacketLoginSuccess implements ClientboundPacket {
|
||||
public class PacketLoginSuccess extends ClientboundPacket {
|
||||
UUID uuid;
|
||||
String username;
|
||||
|
||||
@ -37,11 +36,6 @@ public class PacketLoginSuccess implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Receiving login success packet (username=%s, UUID=%s)", this.username, this.uuid));
|
||||
|
@ -19,9 +19,8 @@ import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.packets.serverbound.play.PacketPlayerDigging;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketAcknowledgePlayerDigging implements ClientboundPacket {
|
||||
public class PacketAcknowledgePlayerDigging extends ClientboundPacket {
|
||||
BlockPosition position;
|
||||
Block block;
|
||||
PacketPlayerDigging.DiggingStatus status;
|
||||
@ -36,11 +35,6 @@ public class PacketAcknowledgePlayerDigging implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received acknowledge digging packet (position=%s, block=%s, status=%s, successful=%s)", this.position, this.block, this.status, this.successful));
|
||||
|
@ -22,13 +22,12 @@ import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.BitByte;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class PacketAdvancements implements ClientboundPacket {
|
||||
public class PacketAdvancements extends ClientboundPacket {
|
||||
final HashMap<String, Advancement> advancements = new HashMap<>();
|
||||
final HashMap<String, AdvancementProgress> progresses = new HashMap<>();
|
||||
boolean reset;
|
||||
@ -101,11 +100,6 @@ public class PacketAdvancements implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Receiving advancements (reset=%s, advancements=%s, progresses=%s)", this.reset, this.advancements.size(), this.progresses.size()));
|
||||
|
@ -13,12 +13,13 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketAttachEntity implements ClientboundPacket {
|
||||
public class PacketAttachEntity extends ClientboundPacket {
|
||||
int entityId;
|
||||
int vehicleId;
|
||||
boolean leash;
|
||||
@ -36,8 +37,14 @@ public class PacketAttachEntity implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.attachTo(getVehicleId());
|
||||
// ToDo leash support
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,11 +17,12 @@ import de.bixilon.minosoft.data.mappings.BlockId;
|
||||
import de.bixilon.minosoft.data.mappings.blocks.actions.*;
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.BlockActionEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketBlockAction implements ClientboundPacket {
|
||||
public class PacketBlockAction extends ClientboundPacket {
|
||||
BlockPosition position;
|
||||
BlockAction data;
|
||||
|
||||
@ -58,8 +59,11 @@ public class PacketBlockAction implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
BlockActionEvent event = new BlockActionEvent(connection, this);
|
||||
if (connection.fireEvent(event)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -15,11 +15,12 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.BlockBreakAnimationEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketBlockBreakAnimation implements ClientboundPacket {
|
||||
public class PacketBlockBreakAnimation extends ClientboundPacket {
|
||||
int entityId;
|
||||
BlockPosition position;
|
||||
byte stage;
|
||||
@ -38,8 +39,11 @@ public class PacketBlockBreakAnimation implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
BlockBreakAnimationEvent event = new BlockBreakAnimationEvent(connection, this);
|
||||
if (connection.fireEvent(event)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -15,12 +15,14 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.mappings.blocks.Block;
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.data.world.Chunk;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.BlockChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketBlockChange implements ClientboundPacket {
|
||||
public class PacketBlockChange extends ClientboundPacket {
|
||||
BlockPosition position;
|
||||
Block block;
|
||||
|
||||
@ -38,8 +40,15 @@ public class PacketBlockChange implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Chunk chunk = connection.getPlayer().getWorld().getChunk(getPosition().getChunkLocation());
|
||||
if (chunk == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
connection.fireEvent(new BlockChangeEvent(connection, this));
|
||||
|
||||
chunk.setBlock(getPosition().getInChunkLocation(), getBlock());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,12 +18,13 @@ import de.bixilon.minosoft.data.VersionValueMap;
|
||||
import de.bixilon.minosoft.data.entities.block.BlockEntityMetaData;
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.BlockEntityMetaDataChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.nbt.tag.CompoundTag;
|
||||
|
||||
public class PacketBlockEntityMetadata implements ClientboundPacket {
|
||||
public class PacketBlockEntityMetadata extends ClientboundPacket {
|
||||
BlockPosition position;
|
||||
BlockEntityActions action;
|
||||
BlockEntityMetaData data;
|
||||
@ -43,8 +44,9 @@ public class PacketBlockEntityMetadata implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new BlockEntityMetaDataChangeEvent(connection, this));
|
||||
connection.getPlayer().getWorld().setBlockEntityData(getPosition(), getData());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -15,14 +15,15 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.BossBarChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.BitByte;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class PacketBossBar implements ClientboundPacket {
|
||||
public class PacketBossBar extends ClientboundPacket {
|
||||
UUID uuid;
|
||||
BossBarActions action;
|
||||
|
||||
@ -57,8 +58,11 @@ public class PacketBossBar implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
BossBarChangeEvent event = new BossBarChangeEvent(connection, this);
|
||||
if (connection.fireEvent(event)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketCamera implements ClientboundPacket {
|
||||
public class PacketCamera extends ClientboundPacket {
|
||||
int entityId;
|
||||
|
||||
@Override
|
||||
@ -27,11 +26,6 @@ public class PacketCamera implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Receiving camera packet (entityId=%d)", this.entityId));
|
||||
|
@ -13,14 +13,16 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.GameModes;
|
||||
import de.bixilon.minosoft.data.MapSet;
|
||||
import de.bixilon.minosoft.data.VersionValueMap;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.ChangeGameStateEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketChangeGameState implements ClientboundPacket {
|
||||
public class PacketChangeGameState extends ClientboundPacket {
|
||||
Reason reason;
|
||||
float value;
|
||||
|
||||
@ -32,8 +34,24 @@ public class PacketChangeGameState implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
ChangeGameStateEvent event = new ChangeGameStateEvent(connection, this);
|
||||
if (connection.fireEvent(event)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Log.game(switch (getReason()) {
|
||||
case START_RAINING -> "Received weather packet: Starting rain...";
|
||||
case STOP_RAINING -> "Received weather packet: Stopping rain...";
|
||||
case CHANGE_GAMEMODE -> String.format("Received game mode change: Now in %s", GameModes.byId(getIntValue()));
|
||||
default -> "";
|
||||
});
|
||||
|
||||
switch (getReason()) {
|
||||
case STOP_RAINING -> connection.getPlayer().getWorld().setRaining(false);
|
||||
case START_RAINING -> connection.getPlayer().getWorld().setRaining(true);
|
||||
case CHANGE_GAMEMODE -> connection.getPlayer().setGameMode(GameModes.byId(getIntValue()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,13 +16,14 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.data.ChatTextPositions;
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.ChatMessageReceivingEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class PacketChatMessageReceiving implements ClientboundPacket {
|
||||
public class PacketChatMessageReceiving extends ClientboundPacket {
|
||||
ChatComponent message;
|
||||
ChatTextPositions position;
|
||||
UUID sender;
|
||||
@ -42,8 +43,16 @@ public class PacketChatMessageReceiving implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
ChatMessageReceivingEvent event = new ChatMessageReceivingEvent(connection, this);
|
||||
if (connection.fireEvent(event)) {
|
||||
return;
|
||||
}
|
||||
Log.game(switch (getPosition()) {
|
||||
case SYSTEM_MESSAGE -> "[SYSTEM] ";
|
||||
case ABOVE_HOTBAR -> "[HOTBAR] ";
|
||||
default -> "[CHAT] ";
|
||||
} + event.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,15 +16,16 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.data.world.Chunk;
|
||||
import de.bixilon.minosoft.data.world.ChunkLocation;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.ChunkDataChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.ChunkUtil;
|
||||
import de.bixilon.minosoft.util.Util;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class PacketChunkBulk implements ClientboundPacket {
|
||||
public class PacketChunkBulk extends ClientboundPacket {
|
||||
final HashMap<ChunkLocation, Chunk> chunks = new HashMap<>();
|
||||
|
||||
@Override
|
||||
@ -73,8 +74,10 @@ public class PacketChunkBulk implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
getChunks().forEach(((location, chunk) -> connection.fireEvent(new ChunkDataChangeEvent(connection, location, chunk))));
|
||||
|
||||
connection.getPlayer().getWorld().setChunks(getChunks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,16 +18,18 @@ import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.data.world.Chunk;
|
||||
import de.bixilon.minosoft.data.world.ChunkLocation;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.BlockEntityMetaDataChangeEvent;
|
||||
import de.bixilon.minosoft.modding.event.events.ChunkDataChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.ChunkUtil;
|
||||
import de.bixilon.minosoft.util.Util;
|
||||
import de.bixilon.minosoft.util.nbt.tag.CompoundTag;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class PacketChunkData implements ClientboundPacket {
|
||||
public class PacketChunkData extends ClientboundPacket {
|
||||
final HashMap<BlockPosition, BlockEntityMetaData> blockEntities = new HashMap<>();
|
||||
ChunkLocation location;
|
||||
Chunk chunk;
|
||||
@ -117,8 +119,12 @@ public class PacketChunkData implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
getBlockEntities().forEach(((position, compoundTag) -> connection.fireEvent(new BlockEntityMetaDataChangeEvent(connection, position, null, compoundTag))));
|
||||
connection.fireEvent(new ChunkDataChangeEvent(connection, this));
|
||||
|
||||
connection.getPlayer().getWorld().setChunk(getLocation(), getChunk());
|
||||
connection.getPlayer().getWorld().setBlockEntityData(getBlockEntities());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,11 +14,12 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.CloseWindowEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketCloseWindowReceiving implements ClientboundPacket {
|
||||
public class PacketCloseWindowReceiving extends ClientboundPacket {
|
||||
byte windowId;
|
||||
|
||||
@Override
|
||||
@ -28,8 +29,13 @@ public class PacketCloseWindowReceiving implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
CloseWindowEvent event = new CloseWindowEvent(connection, this);
|
||||
if (connection.fireEvent(event)) {
|
||||
return;
|
||||
}
|
||||
|
||||
connection.getPlayer().deleteInventory(getWindowId());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,11 +14,12 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.CollectItemAnimationEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketCollectItem implements ClientboundPacket {
|
||||
public class PacketCollectItem extends ClientboundPacket {
|
||||
int itemEntityId;
|
||||
int collectorEntityId;
|
||||
int count;
|
||||
@ -38,8 +39,11 @@ public class PacketCollectItem implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new CollectItemAnimationEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
// ToDo
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,9 +17,8 @@ import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketCombatEvent implements ClientboundPacket {
|
||||
public class PacketCombatEvent extends ClientboundPacket {
|
||||
CombatEvents action;
|
||||
|
||||
int duration;
|
||||
@ -44,11 +43,6 @@ public class PacketCombatEvent implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
switch (this.action) {
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketConfirmTransactionReceiving implements ClientboundPacket {
|
||||
public class PacketConfirmTransactionReceiving extends ClientboundPacket {
|
||||
byte windowId;
|
||||
short actionNumber;
|
||||
boolean accepted;
|
||||
@ -31,11 +30,6 @@ public class PacketConfirmTransactionReceiving implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Closing inventory (windowId=%d)", this.windowId));
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketCraftRecipeResponse implements ClientboundPacket {
|
||||
public class PacketCraftRecipeResponse extends ClientboundPacket {
|
||||
byte windowId;
|
||||
int recipeId;
|
||||
String recipeName;
|
||||
@ -35,11 +34,6 @@ public class PacketCraftRecipeResponse implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received Crafting recipe response (windowId=%d, recipeId=%d)", this.windowId, this.recipeId));
|
||||
|
@ -15,12 +15,13 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.commands.CommandNode;
|
||||
import de.bixilon.minosoft.data.commands.CommandRootNode;
|
||||
import de.bixilon.minosoft.data.commands.parser.exceptions.CommandParseException;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketDeclareCommands implements ClientboundPacket {
|
||||
public class PacketDeclareCommands extends ClientboundPacket {
|
||||
private CommandRootNode rootNode;
|
||||
|
||||
@Override
|
||||
@ -35,8 +36,31 @@ public class PacketDeclareCommands implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.setCommandRootNode(getRootNode());
|
||||
// ToDo: Remove these dummy commands
|
||||
String[] commands = {
|
||||
"msg Bixilon TestReason 2Paramter 3 4 asd asd",
|
||||
"msg @a[name=Bixilon, level=23, gamemode=!survival] trest asd 12312 sad123123213",
|
||||
"help",
|
||||
"team list",
|
||||
"tasdasda",
|
||||
"msg @a[ name = \"Bixilon\" ] asd",
|
||||
"msg @a[ name = Bixilon ] asd asdsadasd",
|
||||
"msg @a[ name = Bixilon ,team= ] asd asdsadasd",
|
||||
"msg @a[ name = Bixilon , team =!] asd asdsadasd",
|
||||
"give Bixilon minecraft:acacia_boat",
|
||||
"give Bixilon minecraft:acacia_boat{asd:12}",
|
||||
};
|
||||
for (String command : commands) {
|
||||
try {
|
||||
getRootNode().isSyntaxCorrect(connection, command);
|
||||
Log.game("Command \"%s\" is valid", command);
|
||||
} catch (CommandParseException e) {
|
||||
Log.game("Command \"%s\" is invalid, %s: %s", command, e.getClass().getSimpleName(), e.getErrorMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,11 +20,11 @@ import de.bixilon.minosoft.data.mappings.recipes.Ingredient;
|
||||
import de.bixilon.minosoft.data.mappings.recipes.Recipe;
|
||||
import de.bixilon.minosoft.data.mappings.recipes.RecipeTypes;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketDeclareRecipes implements ClientboundPacket {
|
||||
public class PacketDeclareRecipes extends ClientboundPacket {
|
||||
private final HashBiMap<ModIdentifier, Recipe> recipes = HashBiMap.create();
|
||||
|
||||
@Override
|
||||
@ -85,8 +85,8 @@ public class PacketDeclareRecipes implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.getRecipes().registerCustomRecipes(getRecipes());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,13 +14,14 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.EntityDespawnEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class PacketDestroyEntity implements ClientboundPacket {
|
||||
public class PacketDestroyEntity extends ClientboundPacket {
|
||||
int[] entityIds;
|
||||
|
||||
@Override
|
||||
@ -38,8 +39,12 @@ public class PacketDestroyEntity implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new EntityDespawnEvent(connection, this));
|
||||
|
||||
for (int entityId : getEntityIds()) {
|
||||
connection.getPlayer().getWorld().removeEntity(entityId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -15,11 +15,12 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.LoginDisconnectEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketDisconnect implements ClientboundPacket {
|
||||
public class PacketDisconnect extends ClientboundPacket {
|
||||
ChatComponent reason;
|
||||
|
||||
@Override
|
||||
@ -29,8 +30,10 @@ public class PacketDisconnect implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new LoginDisconnectEvent(connection, this));
|
||||
// got kicked
|
||||
connection.disconnect();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,11 +17,12 @@ import de.bixilon.minosoft.data.MapSet;
|
||||
import de.bixilon.minosoft.data.VersionValueMap;
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.EffectEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEffect implements ClientboundPacket {
|
||||
public class PacketEffect extends ClientboundPacket {
|
||||
EffectEffects effect;
|
||||
BlockPosition position;
|
||||
int data;
|
||||
@ -41,8 +42,10 @@ public class PacketEffect implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new EffectEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,9 +18,8 @@ import de.bixilon.minosoft.data.VersionValueMap;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityAnimation implements ClientboundPacket {
|
||||
public class PacketEntityAnimation extends ClientboundPacket {
|
||||
int entityId;
|
||||
EntityAnimations animation;
|
||||
|
||||
@ -31,11 +30,6 @@ public class PacketEntityAnimation implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Play entity animation (entityId=%d, animation=%s)", this.entityId, this.animation));
|
||||
|
@ -14,13 +14,14 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.StatusEffect;
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.BitByte;
|
||||
|
||||
public class PacketEntityEffect implements ClientboundPacket {
|
||||
public class PacketEntityEffect extends ClientboundPacket {
|
||||
int entityId;
|
||||
StatusEffect effect;
|
||||
boolean isAmbient;
|
||||
@ -51,8 +52,13 @@ public class PacketEntityEffect implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.addEffect(getEffect());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -13,17 +13,19 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.data.inventory.InventorySlots;
|
||||
import de.bixilon.minosoft.data.inventory.Slot;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.EntityEquipmentChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PacketEntityEquipment implements ClientboundPacket {
|
||||
public class PacketEntityEquipment extends ClientboundPacket {
|
||||
final HashMap<InventorySlots.EntityInventorySlots, Slot> slots = new HashMap<>();
|
||||
int entityId;
|
||||
|
||||
@ -51,8 +53,15 @@ public class PacketEntityEquipment implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new EntityEquipmentChangeEvent(connection, this));
|
||||
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.setEquipment(getSlots());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityEvent implements ClientboundPacket {
|
||||
public class PacketEntityEvent extends ClientboundPacket {
|
||||
int entityId;
|
||||
byte eventId;
|
||||
|
||||
@ -29,11 +28,6 @@ public class PacketEntityEvent implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Entity status: (entityId=%d, eventId=%s)", this.entityId, this.eventId));
|
||||
|
@ -13,12 +13,13 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityHeadRotation implements ClientboundPacket {
|
||||
public class PacketEntityHeadRotation extends ClientboundPacket {
|
||||
int entityId;
|
||||
short headYaw;
|
||||
|
||||
@ -31,8 +32,13 @@ public class PacketEntityHeadRotation implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.setHeadRotation(getHeadYaw());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityInitialisation implements ClientboundPacket {
|
||||
public class PacketEntityInitialisation extends ClientboundPacket {
|
||||
int entityId;
|
||||
|
||||
@Override
|
||||
@ -27,11 +26,6 @@ public class PacketEntityInitialisation implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Initialising entity (entityId=%d)", this.entityId));
|
||||
|
@ -14,12 +14,13 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.EntityMetaData;
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityMetadata implements ClientboundPacket {
|
||||
public class PacketEntityMetadata extends ClientboundPacket {
|
||||
int entityId;
|
||||
EntityMetaData entityMetaData;
|
||||
|
||||
@ -31,8 +32,13 @@ public class PacketEntityMetadata implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.setMetaData(getEntityData());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,12 +14,13 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.RelativeLocation;
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityMovement implements ClientboundPacket {
|
||||
public class PacketEntityMovement extends ClientboundPacket {
|
||||
int entityId;
|
||||
RelativeLocation location;
|
||||
boolean onGround;
|
||||
@ -39,8 +40,13 @@ public class PacketEntityMovement implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.setLocation(getRelativeLocation());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,12 +14,13 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.RelativeLocation;
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityMovementAndRotation implements ClientboundPacket {
|
||||
public class PacketEntityMovementAndRotation extends ClientboundPacket {
|
||||
int entityId;
|
||||
RelativeLocation location;
|
||||
short yaw;
|
||||
@ -44,8 +45,14 @@ public class PacketEntityMovementAndRotation implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.setLocation(getRelativeLocation());
|
||||
entity.setRotation(getYaw(), getPitch());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,12 +18,11 @@ import de.bixilon.minosoft.data.entities.EntityPropertyKeys;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PacketEntityProperties implements ClientboundPacket {
|
||||
public class PacketEntityProperties extends ClientboundPacket {
|
||||
final HashMap<EntityPropertyKeys, EntityProperty> properties = new HashMap<>();
|
||||
int entityId;
|
||||
|
||||
@ -62,11 +61,6 @@ public class PacketEntityProperties implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received entity properties (entityId=%d)", this.entityId));
|
||||
|
@ -13,12 +13,13 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityRotation implements ClientboundPacket {
|
||||
public class PacketEntityRotation extends ClientboundPacket {
|
||||
int entityId;
|
||||
short yaw;
|
||||
short pitch;
|
||||
@ -38,8 +39,13 @@ public class PacketEntityRotation implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.setRotation(getYaw(), getPitch());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,9 +17,8 @@ import de.bixilon.minosoft.data.SoundCategories;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntitySoundEffect implements ClientboundPacket {
|
||||
public class PacketEntitySoundEffect extends ClientboundPacket {
|
||||
int soundId;
|
||||
SoundCategories category;
|
||||
int entityId;
|
||||
@ -36,11 +35,6 @@ public class PacketEntitySoundEffect implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Play sound entity effect (soundId=%d, category=%s, entityId=%d, volume=%s, pitch=%s)", this.soundId, this.category, this.entityId, this.volume, this.pitch));
|
||||
|
@ -14,12 +14,13 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.Location;
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityTeleport implements ClientboundPacket {
|
||||
public class PacketEntityTeleport extends ClientboundPacket {
|
||||
int entityId;
|
||||
Location location;
|
||||
short yaw;
|
||||
@ -45,8 +46,14 @@ public class PacketEntityTeleport implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.setLocation(getRelativeLocation());
|
||||
entity.setRotation(getYaw(), getPitch());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,12 +14,13 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.Velocity;
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketEntityVelocity implements ClientboundPacket {
|
||||
public class PacketEntityVelocity extends ClientboundPacket {
|
||||
int entityId;
|
||||
Velocity velocity;
|
||||
|
||||
@ -32,8 +33,14 @@ public class PacketEntityVelocity implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
connection.getVelocityHandler().handleVelocity(entity, getVelocity());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,12 +14,13 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.Location;
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketExplosion implements ClientboundPacket {
|
||||
public class PacketExplosion extends ClientboundPacket {
|
||||
Location location;
|
||||
float radius;
|
||||
byte[][] records;
|
||||
@ -49,8 +50,16 @@ public class PacketExplosion implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
// remove all blocks set by explosion
|
||||
for (byte[] record : getRecords()) {
|
||||
int x = ((int) getLocation().getX()) + record[0];
|
||||
int y = ((int) getLocation().getY()) + record[1];
|
||||
int z = ((int) getLocation().getZ()) + record[2];
|
||||
BlockPosition blockPosition = new BlockPosition(x, (short) y, z);
|
||||
connection.getPlayer().getWorld().setBlock(blockPosition, null);
|
||||
}
|
||||
// ToDo: motion support
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,9 +17,8 @@ import de.bixilon.minosoft.data.entities.Location;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketFacePlayer implements ClientboundPacket {
|
||||
public class PacketFacePlayer extends ClientboundPacket {
|
||||
PlayerFaces face;
|
||||
Location location;
|
||||
int entityId = -1;
|
||||
@ -37,11 +36,6 @@ public class PacketFacePlayer implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received face player packet (face=%s, location=%s, entityId=%d, entityFace=%s)", this.face, this.location, this.entityId, this.entityFace));
|
||||
|
@ -14,11 +14,11 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketHeldItemChangeReceiving implements ClientboundPacket {
|
||||
public class PacketHeldItemChangeReceiving extends ClientboundPacket {
|
||||
byte slot;
|
||||
|
||||
@Override
|
||||
@ -28,8 +28,8 @@ public class PacketHeldItemChangeReceiving implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.getPlayer().setSelectedSlot(getSlot());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,11 +17,13 @@ import com.google.common.collect.HashBiMap;
|
||||
import de.bixilon.minosoft.data.Difficulties;
|
||||
import de.bixilon.minosoft.data.GameModes;
|
||||
import de.bixilon.minosoft.data.LevelTypes;
|
||||
import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity;
|
||||
import de.bixilon.minosoft.data.mappings.Dimension;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.JoinGameEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition;
|
||||
import de.bixilon.minosoft.util.BitByte;
|
||||
import de.bixilon.minosoft.util.nbt.tag.CompoundTag;
|
||||
@ -30,7 +32,7 @@ import de.bixilon.minosoft.util.nbt.tag.NBTTag;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class PacketJoinGame implements ClientboundPacket {
|
||||
public class PacketJoinGame extends ClientboundPacket {
|
||||
int entityId;
|
||||
boolean hardcore;
|
||||
GameModes gameMode;
|
||||
@ -140,8 +142,19 @@ public class PacketJoinGame implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new JoinGameEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
|
||||
connection.getPlayer().setGameMode(getGameMode());
|
||||
connection.getPlayer().getWorld().setHardcore(isHardcore());
|
||||
connection.getMapping().setDimensions(getDimensions());
|
||||
connection.getPlayer().getWorld().setDimension(getDimension());
|
||||
PlayerEntity entity = new PlayerEntity(connection, getEntityId(), connection.getPlayer().getPlayerUUID(), null, null, connection.getPlayer().getPlayerName(), null, null);
|
||||
connection.getPlayer().setEntity(entity);
|
||||
connection.getPlayer().getWorld().addEntity(entity);
|
||||
connection.getSender().sendChatMessage("I am alive! ~ Minosoft");
|
||||
}
|
||||
|
||||
private HashMap<String, HashBiMap<String, Dimension>> parseDimensionCodec(NBTTag nbt, int versionId) {
|
||||
|
@ -14,12 +14,13 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.packets.serverbound.play.PacketKeepAliveResponse;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketKeepAlive implements ClientboundPacket {
|
||||
long id;
|
||||
public class PacketKeepAlive extends ClientboundPacket {
|
||||
private long id;
|
||||
|
||||
@Override
|
||||
public boolean read(InByteBuffer buffer) {
|
||||
@ -36,8 +37,8 @@ public class PacketKeepAlive implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.sendPacket(new PacketKeepAliveResponse(getId()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,11 +17,10 @@ import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class PacketMapData implements ClientboundPacket {
|
||||
public class PacketMapData extends ClientboundPacket {
|
||||
int mapId;
|
||||
PacketMapDataDataActions dataData;
|
||||
|
||||
@ -119,11 +118,6 @@ public class PacketMapData implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received map meta data (mapId=%d)", this.mapId));
|
||||
|
@ -14,16 +14,18 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.mappings.blocks.Block;
|
||||
import de.bixilon.minosoft.data.world.Chunk;
|
||||
import de.bixilon.minosoft.data.world.ChunkLocation;
|
||||
import de.bixilon.minosoft.data.world.InChunkLocation;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.MultiBlockChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class PacketMultiBlockChange implements ClientboundPacket {
|
||||
public class PacketMultiBlockChange extends ClientboundPacket {
|
||||
final HashMap<InChunkLocation, Block> blocks = new HashMap<>();
|
||||
ChunkLocation location;
|
||||
|
||||
@ -74,8 +76,14 @@ public class PacketMultiBlockChange implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Chunk chunk = connection.getPlayer().getWorld().getChunk(getLocation());
|
||||
if (chunk == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
connection.fireEvent(new MultiBlockChangeEvent(connection, this));
|
||||
chunk.setBlocks(getBlocks());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,10 +16,9 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.nbt.tag.CompoundTag;
|
||||
|
||||
public class PacketNBTQueryResponse implements ClientboundPacket {
|
||||
public class PacketNBTQueryResponse extends ClientboundPacket {
|
||||
int transactionId;
|
||||
CompoundTag tag;
|
||||
|
||||
@ -30,11 +29,6 @@ public class PacketNBTQueryResponse implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received nbt response (transactionId=%d, nbt=%s)", this.transactionId, this.tag.toString()));
|
||||
|
@ -18,10 +18,9 @@ import de.bixilon.minosoft.data.entities.Location;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition;
|
||||
|
||||
public class PacketNamedSoundEffect implements ClientboundPacket {
|
||||
public class PacketNamedSoundEffect extends ClientboundPacket {
|
||||
Location location;
|
||||
String sound;
|
||||
float volume;
|
||||
@ -58,10 +57,6 @@ public class PacketNamedSoundEffect implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
|
@ -17,9 +17,8 @@ import de.bixilon.minosoft.data.player.Hands;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketOpenBook implements ClientboundPacket {
|
||||
public class PacketOpenBook extends ClientboundPacket {
|
||||
Hands hand;
|
||||
|
||||
@Override
|
||||
@ -32,11 +31,6 @@ public class PacketOpenBook implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received open book packet (hand=%s)", this.hand));
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketOpenHorseWindow implements ClientboundPacket {
|
||||
public class PacketOpenHorseWindow extends ClientboundPacket {
|
||||
byte windowId;
|
||||
int slotCount;
|
||||
int entityId;
|
||||
@ -31,11 +30,6 @@ public class PacketOpenHorseWindow implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received open horse window packet (windowId=%d, slotCount=%d, entityId=%s)", this.windowId, this.slotCount, this.entityId));
|
||||
|
@ -15,11 +15,12 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.OpenSignEditorEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketOpenSignEditor implements ClientboundPacket {
|
||||
public class PacketOpenSignEditor extends ClientboundPacket {
|
||||
BlockPosition position;
|
||||
|
||||
@Override
|
||||
@ -33,8 +34,11 @@ public class PacketOpenSignEditor implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
OpenSignEditorEvent event = new OpenSignEditorEvent(connection, this);
|
||||
if (connection.fireEvent(event)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,11 +17,11 @@ import de.bixilon.minosoft.data.inventory.InventoryProperties;
|
||||
import de.bixilon.minosoft.data.inventory.InventoryTypes;
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketOpenWindow implements ClientboundPacket {
|
||||
public class PacketOpenWindow extends ClientboundPacket {
|
||||
byte windowId;
|
||||
InventoryTypes type;
|
||||
ChatComponent title;
|
||||
@ -55,8 +55,8 @@ public class PacketOpenWindow implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.getPlayer().createInventory(getInventoryProperties());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,11 +17,12 @@ import de.bixilon.minosoft.data.entities.Location;
|
||||
import de.bixilon.minosoft.data.mappings.particle.Particle;
|
||||
import de.bixilon.minosoft.data.mappings.particle.data.ParticleData;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.ParticleSpawnEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketParticle implements ClientboundPacket {
|
||||
public class PacketParticle extends ClientboundPacket {
|
||||
Particle particleType;
|
||||
ParticleData particleData;
|
||||
boolean longDistance;
|
||||
@ -71,8 +72,10 @@ public class PacketParticle implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new ParticleSpawnEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,10 +16,9 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.BitByte;
|
||||
|
||||
public class PacketPlayerAbilitiesReceiving implements ClientboundPacket {
|
||||
public class PacketPlayerAbilitiesReceiving extends ClientboundPacket {
|
||||
boolean creative; // is this needed? receiving the gameMode in change Game state
|
||||
boolean flying;
|
||||
boolean canFly;
|
||||
@ -49,11 +48,6 @@ public class PacketPlayerAbilitiesReceiving implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received player abilities packet: (creative=%s, flying=%s, canFly=%s, godMode=%s, flyingSpeed=%s, walkingSpeed=%s)", this.creative, this.flying, this.canFly, this.godMode, this.flyingSpeed, this.walkingSpeed));
|
||||
|
@ -14,20 +14,22 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.GameModes;
|
||||
import de.bixilon.minosoft.data.player.PlayerListItem;
|
||||
import de.bixilon.minosoft.data.player.PlayerListItemBulk;
|
||||
import de.bixilon.minosoft.data.player.PlayerProperties;
|
||||
import de.bixilon.minosoft.data.player.PlayerProperty;
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.PlayerListItemChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PacketPlayerListItem implements ClientboundPacket {
|
||||
public class PacketPlayerListItem extends ClientboundPacket {
|
||||
final ArrayList<PlayerListItemBulk> playerList = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
@ -76,8 +78,48 @@ public class PacketPlayerListItem implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new PlayerListItemChangeEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
for (PlayerListItemBulk bulk : getPlayerList()) {
|
||||
PlayerListItem item = connection.getPlayer().getPlayerList().get(bulk.getUUID());
|
||||
if (item == null && !bulk.isLegacy()) {
|
||||
// Aaaaah. Fuck this shit. The server sends us bullshit!
|
||||
continue;
|
||||
}
|
||||
switch (bulk.getAction()) {
|
||||
case ADD -> connection.getPlayer().getPlayerList().put(bulk.getUUID(), new PlayerListItem(bulk.getUUID(), bulk.getName(), bulk.getPing(), bulk.getGameMode(), bulk.getDisplayName(), bulk.getProperties()));
|
||||
case UPDATE_LATENCY -> {
|
||||
if (bulk.isLegacy()) {
|
||||
// add or update
|
||||
if (item == null) {
|
||||
// create
|
||||
UUID uuid = UUID.randomUUID();
|
||||
connection.getPlayer().getPlayerList().put(uuid, new PlayerListItem(uuid, bulk.getName(), bulk.getPing()));
|
||||
} else {
|
||||
// update ping
|
||||
item.setPing(bulk.getPing());
|
||||
}
|
||||
continue;
|
||||
}
|
||||
connection.getPlayer().getPlayerList().get(bulk.getUUID()).setPing(bulk.getPing());
|
||||
}
|
||||
case REMOVE_PLAYER -> {
|
||||
if (bulk.isLegacy()) {
|
||||
if (item == null) {
|
||||
// not initialized yet
|
||||
continue;
|
||||
}
|
||||
connection.getPlayer().getPlayerList().remove(connection.getPlayer().getPlayerListItem(bulk.getName()).getUUID());
|
||||
continue;
|
||||
}
|
||||
connection.getPlayer().getPlayerList().remove(bulk.getUUID());
|
||||
}
|
||||
case UPDATE_GAMEMODE -> item.setGameMode(bulk.getGameMode());
|
||||
case UPDATE_DISPLAY_NAME -> item.setDisplayName(bulk.getDisplayName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,11 +16,13 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.data.entities.EntityRotation;
|
||||
import de.bixilon.minosoft.data.entities.Location;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.packets.serverbound.play.PacketConfirmTeleport;
|
||||
import de.bixilon.minosoft.protocol.packets.serverbound.play.PacketPlayerPositionAndRotationSending;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketPlayerPositionAndRotation implements ClientboundPacket {
|
||||
public class PacketPlayerPositionAndRotation extends ClientboundPacket {
|
||||
Location location;
|
||||
EntityRotation rotation;
|
||||
boolean onGround;
|
||||
@ -45,8 +47,14 @@ public class PacketPlayerPositionAndRotation implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
// ToDo: GUI should do this
|
||||
connection.getPlayer().getEntity().setLocation(getLocation());
|
||||
if (connection.getVersion().getVersionId() >= 79) {
|
||||
connection.sendPacket(new PacketConfirmTeleport(getTeleportId()));
|
||||
} else {
|
||||
connection.sendPacket(new PacketPlayerPositionAndRotationSending(getLocation(), getRotation(), isOnGround()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -13,13 +13,17 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.Minosoft;
|
||||
import de.bixilon.minosoft.config.ConfigurationPaths;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.channels.DefaultPluginChannels;
|
||||
import de.bixilon.minosoft.modding.event.events.PluginMessageReceiveEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class PacketPluginMessageReceiving implements ClientboundPacket {
|
||||
public class PacketPluginMessageReceiving extends ClientboundPacket {
|
||||
String channel;
|
||||
byte[] data;
|
||||
Connection connection;
|
||||
@ -39,8 +43,37 @@ public class PacketPluginMessageReceiving implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (getChannel().equals(DefaultPluginChannels.MC_BRAND.getChangeableIdentifier().get(connection.getVersion().getVersionId()))) {
|
||||
InByteBuffer data = getDataAsBuffer();
|
||||
String serverVersion;
|
||||
String clientVersion = (Minosoft.getConfig().getBoolean(ConfigurationPaths.BooleanPaths.NETWORK_FAKE_CLIENT_BRAND) ? "vanilla" : "Minosoft");
|
||||
OutByteBuffer toSend = new OutByteBuffer(connection);
|
||||
if (connection.getVersion().getVersionId() < 29) {
|
||||
// no length prefix
|
||||
serverVersion = new String(data.getBytes());
|
||||
toSend.writeBytes(clientVersion.getBytes());
|
||||
} else {
|
||||
// length prefix
|
||||
serverVersion = data.readString();
|
||||
toSend.writeString(clientVersion);
|
||||
}
|
||||
Log.info(String.format("Server is running \"%s\", connected with %s", serverVersion, connection.getVersion().getVersionName()));
|
||||
|
||||
connection.getSender().sendPluginMessageData(DefaultPluginChannels.MC_BRAND.getChangeableIdentifier().get(connection.getVersion().getVersionId()), toSend);
|
||||
return;
|
||||
}
|
||||
|
||||
// MC|StopSound
|
||||
if (getChannel().equals(DefaultPluginChannels.MC_BRAND.getChangeableIdentifier().get(connection.getVersion().getVersionId()))) {
|
||||
// it is basically a packet, handle it like a packet:
|
||||
PacketStopSound packet = new PacketStopSound();
|
||||
packet.read(getDataAsBuffer());
|
||||
packet.handle(connection);
|
||||
return;
|
||||
}
|
||||
|
||||
connection.fireEvent(new PluginMessageReceiveEvent(connection, this));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -13,13 +13,14 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.data.mappings.MobEffect;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketRemoveEntityEffect implements ClientboundPacket {
|
||||
public class PacketRemoveEntityEffect extends ClientboundPacket {
|
||||
int entityId;
|
||||
MobEffect effect;
|
||||
|
||||
@ -32,8 +33,13 @@ public class PacketRemoveEntityEffect implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
Entity entity = connection.getPlayer().getWorld().getEntity(getEntityId());
|
||||
if (entity == null) {
|
||||
// thanks mojang
|
||||
return;
|
||||
}
|
||||
entity.removeEffect(getEffect());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -14,11 +14,12 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.ResourcePackChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketResourcePackSend implements ClientboundPacket {
|
||||
public class PacketResourcePackSend extends ClientboundPacket {
|
||||
String url;
|
||||
String hash;
|
||||
boolean forced;
|
||||
@ -34,8 +35,11 @@ public class PacketResourcePackSend implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
ResourcePackChangeEvent event = new ResourcePackChangeEvent(connection, this);
|
||||
if (connection.fireEvent(event)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,12 +18,13 @@ import de.bixilon.minosoft.data.GameModes;
|
||||
import de.bixilon.minosoft.data.LevelTypes;
|
||||
import de.bixilon.minosoft.data.mappings.Dimension;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.RespawnEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.nbt.tag.CompoundTag;
|
||||
|
||||
public class PacketRespawn implements ClientboundPacket {
|
||||
public class PacketRespawn extends ClientboundPacket {
|
||||
Dimension dimension;
|
||||
Difficulties difficulty;
|
||||
GameModes gameMode;
|
||||
@ -76,8 +77,16 @@ public class PacketRespawn implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new RespawnEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
|
||||
// clear all chunks
|
||||
connection.getPlayer().getWorld().getAllChunks().clear();
|
||||
connection.getPlayer().getWorld().setDimension(getDimension());
|
||||
connection.getPlayer().setSpawnConfirmed(false);
|
||||
connection.getPlayer().setGameMode(getGameMode());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketScoreboardDisplayScoreboard implements ClientboundPacket {
|
||||
public class PacketScoreboardDisplayScoreboard extends ClientboundPacket {
|
||||
ScoreboardAnimations action;
|
||||
String scoreName;
|
||||
|
||||
@ -29,11 +28,6 @@ public class PacketScoreboardDisplayScoreboard implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received display scoreboard packet (position=%s, scoreName=\"%s\"", this.action, this.scoreName));
|
||||
|
@ -13,13 +13,14 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.scoreboard.ScoreboardObjective;
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketScoreboardObjective implements ClientboundPacket {
|
||||
public class PacketScoreboardObjective extends ClientboundPacket {
|
||||
String name;
|
||||
ChatComponent value;
|
||||
ScoreboardObjectiveActions action;
|
||||
@ -52,8 +53,12 @@ public class PacketScoreboardObjective implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
switch (getAction()) {
|
||||
case CREATE -> connection.getPlayer().getScoreboardManager().addObjective(new ScoreboardObjective(getName(), getValue()));
|
||||
case UPDATE -> connection.getPlayer().getScoreboardManager().getObjective(getName()).setValue(getValue());
|
||||
case REMOVE -> connection.getPlayer().getScoreboardManager().removeObjective(getName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -13,12 +13,14 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.scoreboard.ScoreboardObjective;
|
||||
import de.bixilon.minosoft.data.scoreboard.ScoreboardScore;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketScoreboardUpdateScore implements ClientboundPacket {
|
||||
public class PacketScoreboardUpdateScore extends ClientboundPacket {
|
||||
String itemName;
|
||||
ScoreboardUpdateScoreActions action;
|
||||
String scoreName;
|
||||
@ -48,8 +50,17 @@ public class PacketScoreboardUpdateScore implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
switch (getAction()) {
|
||||
case CREATE_UPDATE -> connection.getPlayer().getScoreboardManager().getObjective(getScoreName()).addScore(new ScoreboardScore(getItemName(), getScoreName(), getScoreValue()));
|
||||
case REMOVE -> {
|
||||
ScoreboardObjective objective = connection.getPlayer().getScoreboardManager().getObjective(getScoreName());
|
||||
if (objective != null) {
|
||||
// thanks mojang
|
||||
objective.removeScore(getItemName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,9 +17,8 @@ import de.bixilon.minosoft.data.ChangeableIdentifier;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketSelectAdvancementTab implements ClientboundPacket {
|
||||
public class PacketSelectAdvancementTab extends ClientboundPacket {
|
||||
AdvancementTabs tab;
|
||||
|
||||
@Override
|
||||
@ -30,11 +29,6 @@ public class PacketSelectAdvancementTab implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received select advancement tab (tab=%s)", this.tab));
|
||||
|
@ -17,9 +17,8 @@ import de.bixilon.minosoft.data.Difficulties;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketServerDifficulty implements ClientboundPacket {
|
||||
public class PacketServerDifficulty extends ClientboundPacket {
|
||||
Difficulties difficulty;
|
||||
boolean locked;
|
||||
|
||||
@ -32,11 +31,6 @@ public class PacketServerDifficulty implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received server difficulty (difficulty=%s)", this.difficulty));
|
||||
|
@ -14,11 +14,10 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.interfaces.PacketCompressionInterface;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.interfaces.CompressionThresholdChange;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketSetCompression implements PacketCompressionInterface {
|
||||
public class PacketSetCompression extends CompressionThresholdChange {
|
||||
int threshold;
|
||||
|
||||
@Override
|
||||
@ -27,11 +26,6 @@ public class PacketSetCompression implements PacketCompressionInterface {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received set compression packet (threshold=%d)", this.threshold));
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketSetCooldown implements ClientboundPacket {
|
||||
public class PacketSetCooldown extends ClientboundPacket {
|
||||
|
||||
int item;
|
||||
int cooldownTicks;
|
||||
@ -30,11 +29,6 @@ public class PacketSetCooldown implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Receiving item cooldown (item=%s, coolDown=%dt)", this.item, this.cooldownTicks));
|
||||
|
@ -14,11 +14,12 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.ExperienceChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketSetExperience implements ClientboundPacket {
|
||||
public class PacketSetExperience extends ClientboundPacket {
|
||||
float bar;
|
||||
int level;
|
||||
int total;
|
||||
@ -37,8 +38,13 @@ public class PacketSetExperience implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new ExperienceChangeEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
|
||||
connection.getPlayer().setLevel(getLevel());
|
||||
connection.getPlayer().setTotalExperience(getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketSetPassenger implements ClientboundPacket {
|
||||
public class PacketSetPassenger extends ClientboundPacket {
|
||||
int vehicleId;
|
||||
int[] entityIds;
|
||||
|
||||
@ -32,11 +31,6 @@ public class PacketSetPassenger implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Attaching %d entities (vehicleId=%d)", this.entityIds.length, this.vehicleId));
|
||||
|
@ -15,11 +15,12 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.inventory.Slot;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.SingleSlotChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketSetSlot implements ClientboundPacket {
|
||||
public class PacketSetSlot extends ClientboundPacket {
|
||||
byte windowId;
|
||||
short slotId;
|
||||
Slot slot; // ToDo use enum Slots
|
||||
@ -33,8 +34,15 @@ public class PacketSetSlot implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new SingleSlotChangeEvent(connection, this));
|
||||
|
||||
if (getWindowId() == -1) {
|
||||
// thanks mojang
|
||||
// ToDo: what is windowId -1
|
||||
return;
|
||||
}
|
||||
connection.getPlayer().setSlot(getWindowId(), getSlotId(), getSlot());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,10 +18,9 @@ import de.bixilon.minosoft.data.entities.Location;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition;
|
||||
|
||||
public class PacketSoundEffect implements ClientboundPacket {
|
||||
public class PacketSoundEffect extends ClientboundPacket {
|
||||
Location location;
|
||||
SoundCategories category;
|
||||
int soundId;
|
||||
@ -52,11 +51,6 @@ public class PacketSoundEffect implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Play sound effect (soundId=%d, category=%s, volume=%s, pitch=%s, location=%s)", this.soundId, this.category, this.volume, this.pitch, this.location));
|
||||
|
@ -16,11 +16,12 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.data.entities.Location;
|
||||
import de.bixilon.minosoft.data.entities.entities.ExperienceOrb;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketSpawnExperienceOrb implements ClientboundPacket {
|
||||
public class PacketSpawnExperienceOrb extends ClientboundPacket {
|
||||
ExperienceOrb entity;
|
||||
|
||||
@Override
|
||||
@ -38,8 +39,10 @@ public class PacketSpawnExperienceOrb implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new EntitySpawnEvent(connection, this));
|
||||
|
||||
connection.getPlayer().getWorld().addEntity(getEntity());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -15,11 +15,12 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.SpawnLocationChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketSpawnLocation implements ClientboundPacket {
|
||||
public class PacketSpawnLocation extends ClientboundPacket {
|
||||
BlockPosition location;
|
||||
|
||||
@Override
|
||||
@ -33,8 +34,9 @@ public class PacketSpawnLocation implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new SpawnLocationChangeEvent(connection, this));
|
||||
connection.getPlayer().setSpawnLocation(getSpawnLocation());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -21,15 +21,15 @@ import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.data.entities.entities.UnknownEntityException;
|
||||
import de.bixilon.minosoft.data.mappings.VersionTweaker;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PacketSpawnMob implements ClientboundPacket {
|
||||
public class PacketSpawnMob extends ClientboundPacket {
|
||||
Entity entity;
|
||||
Velocity velocity;
|
||||
|
||||
@ -79,8 +79,11 @@ public class PacketSpawnMob implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new EntitySpawnEvent(connection, this));
|
||||
|
||||
connection.getPlayer().getWorld().addEntity(getEntity());
|
||||
connection.getVelocityHandler().handleVelocity(getEntity(), getVelocity());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -21,15 +21,15 @@ import de.bixilon.minosoft.data.entities.entities.Entity;
|
||||
import de.bixilon.minosoft.data.entities.entities.UnknownEntityException;
|
||||
import de.bixilon.minosoft.data.mappings.VersionTweaker;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PacketSpawnObject implements ClientboundPacket {
|
||||
public class PacketSpawnObject extends ClientboundPacket {
|
||||
Entity entity;
|
||||
Velocity velocity;
|
||||
|
||||
@ -89,8 +89,11 @@ public class PacketSpawnObject implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new EntitySpawnEvent(connection, this));
|
||||
|
||||
connection.getPlayer().getWorld().addEntity(getEntity());
|
||||
connection.getVelocityHandler().handleVelocity(getEntity(), getVelocity());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,13 +18,14 @@ import de.bixilon.minosoft.data.entities.entities.decoration.Painting;
|
||||
import de.bixilon.minosoft.data.mappings.Motive;
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class PacketSpawnPainting implements ClientboundPacket {
|
||||
public class PacketSpawnPainting extends ClientboundPacket {
|
||||
Painting entity;
|
||||
|
||||
@Override
|
||||
@ -54,8 +55,10 @@ public class PacketSpawnPainting implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new EntitySpawnEvent(connection, this));
|
||||
|
||||
connection.getPlayer().getWorld().addEntity(getEntity());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -21,14 +21,15 @@ import de.bixilon.minosoft.data.entities.Velocity;
|
||||
import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity;
|
||||
import de.bixilon.minosoft.data.mappings.Item;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PacketSpawnPlayer implements ClientboundPacket {
|
||||
public class PacketSpawnPlayer extends ClientboundPacket {
|
||||
PlayerEntity entity;
|
||||
Velocity velocity;
|
||||
|
||||
@ -74,8 +75,11 @@ public class PacketSpawnPlayer implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new EntitySpawnEvent(connection, this));
|
||||
|
||||
connection.getPlayer().getWorld().addEntity(getEntity());
|
||||
connection.getVelocityHandler().handleVelocity(getEntity(), getVelocity());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,11 +16,13 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.data.entities.Location;
|
||||
import de.bixilon.minosoft.data.entities.entities.LightningBolt;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.EntitySpawnEvent;
|
||||
import de.bixilon.minosoft.modding.event.events.LightningBoltSpawnEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketSpawnWeatherEntity implements ClientboundPacket {
|
||||
public class PacketSpawnWeatherEntity extends ClientboundPacket {
|
||||
LightningBolt entity;
|
||||
|
||||
@Override
|
||||
@ -38,8 +40,9 @@ public class PacketSpawnWeatherEntity implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new EntitySpawnEvent(connection, this));
|
||||
connection.fireEvent(new LightningBoltSpawnEvent(connection, this));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,11 +18,10 @@ import de.bixilon.minosoft.data.mappings.statistics.StatisticCategories;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class PacketStatistics implements ClientboundPacket {
|
||||
public class PacketStatistics extends ClientboundPacket {
|
||||
final HashMap<Statistic, Integer> statistics = new HashMap<>();
|
||||
|
||||
@Override
|
||||
@ -39,11 +38,6 @@ public class PacketStatistics implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received player statistics (count=%d)", this.statistics.size()));
|
||||
|
@ -18,10 +18,9 @@ import de.bixilon.minosoft.data.mappings.ModIdentifier;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.BitByte;
|
||||
|
||||
public class PacketStopSound implements ClientboundPacket {
|
||||
public class PacketStopSound extends ClientboundPacket {
|
||||
SoundCategories category;
|
||||
ModIdentifier soundIdentifier;
|
||||
|
||||
@ -42,11 +41,6 @@ public class PacketStopSound implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received stop sound (category=%s, soundIdentifier=%s)", this.category, this.soundIdentifier));
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketTabCompleteReceiving implements ClientboundPacket {
|
||||
public class PacketTabCompleteReceiving extends ClientboundPacket {
|
||||
int count;
|
||||
String[] match;
|
||||
|
||||
@ -41,11 +40,6 @@ public class PacketTabCompleteReceiving implements ClientboundPacket {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received tab complete for message(count=%d)", this.count));
|
||||
|
@ -15,11 +15,12 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.PlayerListInfoChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketTabHeaderAndFooter implements ClientboundPacket {
|
||||
public class PacketTabHeaderAndFooter extends ClientboundPacket {
|
||||
ChatComponent header;
|
||||
ChatComponent footer;
|
||||
|
||||
@ -31,8 +32,13 @@ public class PacketTabHeaderAndFooter implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new PlayerListInfoChangeEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
|
||||
connection.getPlayer().setTabHeader(getHeader());
|
||||
connection.getPlayer().setTabFooter(getFooter());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,9 +17,8 @@ import de.bixilon.minosoft.data.Tag;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketTags implements ClientboundPacket {
|
||||
public class PacketTags extends ClientboundPacket {
|
||||
Tag[] blockTags;
|
||||
Tag[] itemTags;
|
||||
Tag[] fluidTags;
|
||||
@ -44,11 +43,6 @@ public class PacketTags implements ClientboundPacket {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received tags (blockLength=%d, itemLength=%d, fluidLength=%d, entityLength=%d)", this.blockTags.length, this.itemTags.length, this.fluidTags.length, ((this.entityTags == null) ? 0 : this.entityTags.length)));
|
||||
|
@ -13,16 +13,19 @@
|
||||
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.scoreboard.Team;
|
||||
import de.bixilon.minosoft.data.text.ChatCode;
|
||||
import de.bixilon.minosoft.data.text.ChatColors;
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.BitByte;
|
||||
|
||||
public class PacketTeams implements ClientboundPacket {
|
||||
import java.util.Arrays;
|
||||
|
||||
public class PacketTeams extends ClientboundPacket {
|
||||
String name;
|
||||
TeamActions action;
|
||||
ChatComponent displayName;
|
||||
@ -84,8 +87,14 @@ public class PacketTeams implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
switch (getAction()) {
|
||||
case CREATE -> connection.getPlayer().getScoreboardManager().addTeam(new Team(getName(), getDisplayName(), getPrefix(), getSuffix(), isFriendlyFireEnabled(), isSeeingFriendlyInvisibles(), getPlayerNames()));
|
||||
case INFORMATION_UPDATE -> connection.getPlayer().getScoreboardManager().getTeam(getName()).updateInformation(getDisplayName(), getPrefix(), getSuffix(), isFriendlyFireEnabled(), isSeeingFriendlyInvisibles());
|
||||
case REMOVE -> connection.getPlayer().getScoreboardManager().removeTeam(getName());
|
||||
case PLAYER_ADD -> connection.getPlayer().getScoreboardManager().getTeam(getName()).addPlayers(Arrays.asList(getPlayerNames()));
|
||||
case PLAYER_REMOVE -> connection.getPlayer().getScoreboardManager().getTeam(getName()).removePlayers(Arrays.asList(getPlayerNames()));
|
||||
}
|
||||
}
|
||||
|
||||
private void setFriendlyFireByLegacy(byte raw) {
|
||||
|
@ -14,11 +14,12 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.TimeChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketTimeUpdate implements ClientboundPacket {
|
||||
public class PacketTimeUpdate extends ClientboundPacket {
|
||||
long worldAge;
|
||||
long timeOfDay;
|
||||
|
||||
@ -30,8 +31,10 @@ public class PacketTimeUpdate implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new TimeChangeEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,11 +18,12 @@ import de.bixilon.minosoft.data.VersionValueMap;
|
||||
import de.bixilon.minosoft.data.mappings.versions.Versions;
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.TitleChangeEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketTitle implements ClientboundPacket {
|
||||
public class PacketTitle extends ClientboundPacket {
|
||||
TitleActions action;
|
||||
|
||||
// fields depend on action
|
||||
@ -48,8 +49,10 @@ public class PacketTitle implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
if (connection.fireEvent(new TitleChangeEvent(connection, this))) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -19,9 +19,8 @@ import de.bixilon.minosoft.data.inventory.Slot;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketTradeList implements ClientboundPacket {
|
||||
public class PacketTradeList extends ClientboundPacket {
|
||||
int windowId;
|
||||
Trade[] trades;
|
||||
VillagerData.VillagerLevels level;
|
||||
@ -61,11 +60,6 @@ public class PacketTradeList implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received select trade packet (windowId=%d, tradeLength=%d, level=%s, experience=%d, regularVillager=%s, canRestock=%s)", this.windowId, this.trades.length, this.level, this.experience, this.isRegularVillager, this.canRestock));
|
||||
|
@ -15,11 +15,11 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.data.world.ChunkLocation;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketUnloadChunk implements ClientboundPacket {
|
||||
public class PacketUnloadChunk extends ClientboundPacket {
|
||||
ChunkLocation location;
|
||||
|
||||
@Override
|
||||
@ -29,8 +29,8 @@ public class PacketUnloadChunk implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.getPlayer().getWorld().unloadChunk(getLocation());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,9 +17,8 @@ import de.bixilon.minosoft.data.mappings.recipes.Recipe;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketUnlockRecipes implements ClientboundPacket {
|
||||
public class PacketUnlockRecipes extends ClientboundPacket {
|
||||
private UnlockRecipeActions action;
|
||||
private boolean isCraftingBookOpen;
|
||||
private boolean isSmeltingBookOpen;
|
||||
@ -72,11 +71,6 @@ public class PacketUnlockRecipes implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received unlock crafting recipe packet (action=%s, isCraftingBookOpen=%s, isFilteringActive=%s, isSmeltingBookOpen=%s, isSmeltingFilteringActive=%s listedLength=%d, taggedLength=%s)", this.action, this.isCraftingBookOpen, this.isCraftingFilteringActive, this.isSmeltingBookOpen, this.isSmeltingFilteringActive, this.listed.length, ((this.tagged == null) ? 0 : this.tagged.length)));
|
||||
|
@ -14,11 +14,12 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.modding.event.events.UpdateHealthEvent;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketUpdateHealth implements ClientboundPacket {
|
||||
public class PacketUpdateHealth extends ClientboundPacket {
|
||||
float health;
|
||||
int food;
|
||||
float saturation;
|
||||
@ -36,8 +37,16 @@ public class PacketUpdateHealth implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
connection.fireEvent(new UpdateHealthEvent(connection, this));
|
||||
|
||||
connection.getPlayer().setFood(getFood());
|
||||
connection.getPlayer().setHealth(getHealth());
|
||||
connection.getPlayer().setSaturation(getSaturation());
|
||||
if (getHealth() <= 0.0F) {
|
||||
// do respawn
|
||||
connection.getSender().respawn();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,10 +17,9 @@ import de.bixilon.minosoft.data.world.ChunkLocation;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.ChunkUtil;
|
||||
|
||||
public class PacketUpdateLight implements ClientboundPacket {
|
||||
public class PacketUpdateLight extends ClientboundPacket {
|
||||
ChunkLocation location;
|
||||
|
||||
@Override
|
||||
@ -38,11 +37,6 @@ public class PacketUpdateLight implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received light update (location=%s)", this.location));
|
||||
|
@ -16,11 +16,13 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.data.text.ChatComponent;
|
||||
import de.bixilon.minosoft.data.world.BlockPosition;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.util.nbt.tag.CompoundTag;
|
||||
import de.bixilon.minosoft.util.nbt.tag.StringTag;
|
||||
|
||||
public class PacketUpdateSignReceiving implements ClientboundPacket {
|
||||
public class PacketUpdateSignReceiving extends ClientboundPacket {
|
||||
final ChatComponent[] lines = new ChatComponent[4];
|
||||
BlockPosition position;
|
||||
|
||||
@ -38,8 +40,14 @@ public class PacketUpdateSignReceiving implements ClientboundPacket {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
public void handle(Connection connection) {
|
||||
CompoundTag nbt = new CompoundTag();
|
||||
nbt.writeBlockPosition(getPosition());
|
||||
nbt.writeTag("id", new StringTag("minecraft:sign"));
|
||||
for (int i = 0; i < 4; i++) {
|
||||
nbt.writeTag(String.format("Text%d", (i + 1)), new StringTag(getLines()[i].getLegacyText()));
|
||||
}
|
||||
// ToDo: handle sign updates
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -16,9 +16,8 @@ package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
|
||||
public class PacketUpdateViewDistance implements ClientboundPacket {
|
||||
public class PacketUpdateViewDistance extends ClientboundPacket {
|
||||
int viewDistance;
|
||||
|
||||
@Override
|
||||
@ -27,11 +26,6 @@ public class PacketUpdateViewDistance implements ClientboundPacket {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol(String.format("[IN] Received view distance update (viewDistance=%s)", this.viewDistance));
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user