9
0
mirror of https://github.com/Xiao-MoMi/Custom-Fishing.git synced 2025-12-26 02:19:21 +00:00

fix packet on 1.18

This commit is contained in:
XiaoMoMi
2024-01-08 17:29:35 +08:00
parent 011b94c6a0
commit 75aaa02cb5
3 changed files with 27 additions and 7 deletions

View File

@@ -61,13 +61,21 @@ public class ArmorStandUtils {
*/
public static PacketContainer getSpawnPacket(int id, Location location) {
PacketContainer entityPacket = new PacketContainer(PacketType.Play.Server.SPAWN_ENTITY);
entityPacket.getModifier().write(0, id);
entityPacket.getModifier().write(1, UUID.randomUUID());
entityPacket.getEntityTypeModifier().write(0, EntityType.ARMOR_STAND);
entityPacket.getDoubles().write(0, location.getX());
entityPacket.getDoubles().write(1, location.getY());
entityPacket.getDoubles().write(2, location.getZ());
entityPacket.getBytes().write(0, (byte) ((location.getYaw() % 360) * 128 / 180));
try {
entityPacket.getModifier().write(0, id);
entityPacket.getModifier().write(1, UUID.randomUUID());
entityPacket.getEntityTypeModifier().write(0, EntityType.ARMOR_STAND);
entityPacket.getDoubles().write(0, location.getX());
entityPacket.getDoubles().write(1, location.getY());
entityPacket.getDoubles().write(2, location.getZ());
if (CustomFishingPlugin.get().getVersionManager().isVersionNewerThan1_19()) {
entityPacket.getBytes().write(0, (byte) ((location.getYaw() % 360) * 128 / 180));
} else {
entityPacket.getIntegers().write(5, (int) ((location.getYaw() % 360) * 128 / 180));
}
} catch (Exception e) {
e.printStackTrace();
}
return entityPacket;
}

View File

@@ -35,6 +35,7 @@ public class VersionManagerImpl implements VersionManager {
private final boolean isNewerThan1_19_R2;
private final boolean isNewerThan1_20;
private final boolean isNewerThan1_19;
private final String serverVersion;
private final CustomFishingPluginImpl plugin;
private final boolean isSpigot;
@@ -54,12 +55,15 @@ public class VersionManagerImpl implements VersionManager {
if (main_ver >= 20) {
isNewerThan1_19_R2 = true;
isNewerThan1_20 = true;
isNewerThan1_19 = true;
} else if (main_ver == 19) {
isNewerThan1_19_R2 = Integer.parseInt(split[2].substring(1)) >= 2;
isNewerThan1_20 = false;
isNewerThan1_19 = true;
} else {
isNewerThan1_19_R2 = false;
isNewerThan1_20 = false;
isNewerThan1_19 = false;
}
// Check if the server is Spigot
@@ -78,6 +82,12 @@ public class VersionManagerImpl implements VersionManager {
this.pluginVersion = plugin.getDescription().getVersion();
}
@Override
public boolean isVersionNewerThan1_19() {
return isNewerThan1_19;
}
@Override
public boolean isVersionNewerThan1_19_R2() {
return isNewerThan1_19_R2;