forked from SteamWar/SteamWar
Update WorldEditWrapper21
This commit is contained in:
@@ -32,10 +32,12 @@ import net.minecraft.network.protocol.game.PacketPlayOutExplosion;
|
||||
import net.minecraft.network.protocol.game.PacketPlayOutGameStateChange;
|
||||
import net.minecraft.server.level.EntityPlayer;
|
||||
import net.minecraft.server.level.PlayerInteractManager;
|
||||
import net.minecraft.world.entity.player.EntityHuman;
|
||||
import net.minecraft.world.entity.player.PlayerAbilities;
|
||||
import net.minecraft.world.item.component.CustomData;
|
||||
import net.minecraft.world.level.EnumGamemode;
|
||||
import net.minecraft.world.level.Explosion;
|
||||
import net.minecraft.world.phys.Vec3D;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.v1_21_R2.entity.CraftPlayer;
|
||||
@@ -44,6 +46,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public class NMSWrapper21 implements NMSWrapper {
|
||||
|
||||
@@ -77,11 +80,13 @@ public class NMSWrapper21 implements NMSWrapper {
|
||||
gameStateChangeReason.set(packet, PacketPlayOutGameStateChange.d);
|
||||
}
|
||||
|
||||
private static final Reflection.FieldAccessor<PlayerAbilities> playerAbilities = Reflection.getField(EntityHuman.class, null, PlayerAbilities.class);
|
||||
|
||||
@Override
|
||||
public void setPlayerBuildAbilities(Player player) {
|
||||
PlayerAbilities abilities = ((CraftPlayer) player).getHandle().;
|
||||
((CraftPlayer) player).getHandle().().d = true;
|
||||
((CraftPlayer) player).getHandle().fZ().e = true;
|
||||
PlayerAbilities abilities = playerAbilities.get(((CraftPlayer) player).getHandle());
|
||||
abilities.d = true;
|
||||
abilities.e = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -128,30 +133,11 @@ public class NMSWrapper21 implements NMSWrapper {
|
||||
}
|
||||
|
||||
private final Class<?> explosionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion");
|
||||
private final Reflection.FieldAccessor<Double> a = Reflection.getField(explosionPacket, double.class, 0);
|
||||
private final Reflection.FieldAccessor<Double> b = Reflection.getField(explosionPacket, double.class, 1);
|
||||
private final Reflection.FieldAccessor<Double> c = Reflection.getField(explosionPacket, double.class, 2);
|
||||
private final Reflection.FieldAccessor<Float> d = Reflection.getField(explosionPacket, float.class, 0);
|
||||
private final Reflection.FieldAccessor<List> e = Reflection.getField(explosionPacket, List.class, 0);
|
||||
private final Reflection.FieldAccessor<Explosion.Effect> f = Reflection.getField(explosionPacket, Explosion.Effect.class, 0);
|
||||
private final Reflection.FieldAccessor<ParticleParam> g = Reflection.getField(explosionPacket, ParticleParam.class, 0);
|
||||
private final Reflection.FieldAccessor<ParticleParam> h = Reflection.getField(explosionPacket, ParticleParam.class, 1);
|
||||
private final Reflection.FieldAccessor<Holder> i = Reflection.getField(explosionPacket, Holder.class, 0);
|
||||
private final Reflection.FieldAccessor<Optional> explosionKnockback = Reflection.getField(explosionPacket, Optional.class, 0);
|
||||
|
||||
@Override
|
||||
public Object resetExplosionKnockback(Object packet) {
|
||||
PacketPlayOutExplosion packetPlayOutExplosion = (PacketPlayOutExplosion) packet;
|
||||
return new PacketPlayOutExplosion(
|
||||
a.get(packetPlayOutExplosion),
|
||||
b.get(packetPlayOutExplosion),
|
||||
c.get(packetPlayOutExplosion),
|
||||
d.get(packetPlayOutExplosion),
|
||||
e.get(packetPlayOutExplosion),
|
||||
null,
|
||||
f.get(packetPlayOutExplosion),
|
||||
g.get(packetPlayOutExplosion),
|
||||
h.get(packetPlayOutExplosion),
|
||||
i.get(packetPlayOutExplosion)
|
||||
);
|
||||
explosionKnockback.set(packet, Optional.empty());
|
||||
return packet;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user