feat: update wrapper

This commit is contained in:
ineanto 2023-04-28 22:47:57 +02:00
parent 7392b8aad2
commit a01b564912
3 changed files with 29 additions and 7 deletions

View file

@ -111,7 +111,7 @@ public class NickoBukkit extends JavaPlugin {
protocolManager.addPacketListener(new PacketAdapter( protocolManager.addPacketListener(new PacketAdapter(
this, this,
ListenerPriority.NORMAL, ListenerPriority.NORMAL,
PacketType.Play.Server.PLAYER_INFO) { PacketType.Play.Server.RESPAWN) {
@Override @Override
public void onPacketReceiving(PacketEvent event) { public void onPacketReceiving(PacketEvent event) {
} }

View file

@ -145,6 +145,9 @@ public class AppearanceManager {
respawn.setDifficulty(world.getDifficulty()); respawn.setDifficulty(world.getDifficulty());
respawn.setDimension(world); respawn.setDimension(world);
respawn.setSeed(world.getSeed()); respawn.setSeed(world.getSeed());
respawn.setLastDeathLocation(player.getLocation());
respawn.getHandle().getBooleans().write(0, false); // is debug
respawn.getHandle().getBooleans().write(1, false); // is flat
respawn.sendPacket(player); respawn.sendPacket(player);
} }

View file

@ -4,12 +4,16 @@ import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.utility.MinecraftReflection; import com.comphenix.protocol.utility.MinecraftReflection;
import com.comphenix.protocol.utility.MinecraftVersion; import com.comphenix.protocol.utility.MinecraftVersion;
import com.comphenix.protocol.wrappers.BlockPosition;
import com.comphenix.protocol.wrappers.BukkitConverters; import com.comphenix.protocol.wrappers.BukkitConverters;
import com.comphenix.protocol.wrappers.EnumWrappers; import com.comphenix.protocol.wrappers.EnumWrappers;
import org.bukkit.Difficulty; import org.bukkit.Difficulty;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import java.util.Optional;
/** /**
* Up-to-date version of the Wrapper class * Up-to-date version of the Wrapper class
* for the PacketPlayServerRespawn. * for the PacketPlayServerRespawn.
@ -51,10 +55,7 @@ public class WrapperPlayServerRespawn extends AbstractPacket {
public void setDimension(World value) { public void setDimension(World value) {
if (MinecraftVersion.WILD_UPDATE.atOrAbove()) { if (MinecraftVersion.WILD_UPDATE.atOrAbove()) {
// 1.19 and above // 1.19 and above
handle.getWorldKeys().withParamType( handle.getWorldKeys().write(0, value);
MinecraftReflection.getResourceKey(),
BukkitConverters.getWorldKeyConverter()
).write(0, value);
return; return;
} }
// 1.18 and below // 1.18 and below
@ -66,15 +67,33 @@ public class WrapperPlayServerRespawn extends AbstractPacket {
//............. //.............
public void getGameMode() { public void getGameMode() {
// Present since 1.8, we're good!
handle.getGameModes().read(0); handle.getGameModes().read(0);
} }
public void setGameMode(GameMode value) { public void setGameMode(GameMode value) {
// Present since 1.8, we're good!
handle.getGameModes().write(0, EnumWrappers.NativeGameMode.fromBukkit(value)); handle.getGameModes().write(0, EnumWrappers.NativeGameMode.fromBukkit(value));
} }
//.............
// Last death location Field
// Added in 1.19.
//.............
public Optional<BlockPosition> getLastDeathLocation() {
if (MinecraftVersion.WILD_UPDATE.atOrAbove()) {
return handle.getOptionals(BlockPosition.getConverter()).read(0);
}
return Optional.empty();
}
public void setLastDeathLocation(Location value) {
if (MinecraftVersion.WILD_UPDATE.atOrAbove()) {
final BlockPosition locationToBlockPosition = BlockPosition.getConverter().getSpecific(value);
final Optional<BlockPosition> blockPosition = Optional.ofNullable(locationToBlockPosition);
handle.getOptionals(BlockPosition.getConverter()).write(0, blockPosition);
}
}
//............. //.............
// Seed Field // Seed Field
// Added in 1.15. // Added in 1.15.