feat: update wrapper
This commit is contained in:
parent
7392b8aad2
commit
a01b564912
3 changed files with 29 additions and 7 deletions
|
@ -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) {
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Reference in a new issue