Update 5.14
This commit is contained in:
@@ -2,11 +2,13 @@ package io.izzel.taboolib.module.nms;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import io.izzel.taboolib.module.inject.TInject;
|
||||
import io.izzel.taboolib.module.nms.impl.Position;
|
||||
import io.izzel.taboolib.module.nms.nbt.Attribute;
|
||||
import io.izzel.taboolib.module.nms.nbt.NBTAttribute;
|
||||
import io.izzel.taboolib.module.nms.nbt.NBTCompound;
|
||||
import io.izzel.taboolib.module.nms.nbt.NBTList;
|
||||
import org.bukkit.Particle;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@@ -70,4 +72,10 @@ public abstract class NMS {
|
||||
abstract public List<NBTAttribute> getBaseAttribute(ItemStack item);
|
||||
|
||||
abstract public Object toNMS(Attribute attribute);
|
||||
|
||||
abstract public Entity getEntityById(int id);
|
||||
|
||||
abstract public Position fromBlockPosition(Object blockPosition);
|
||||
|
||||
abstract public void openSignEditor(Player player, Block block);
|
||||
}
|
||||
|
||||
@@ -12,12 +12,15 @@ import net.minecraft.server.v1_12_R1.MinecraftServer;
|
||||
import net.minecraft.server.v1_12_R1.NBTTagCompound;
|
||||
import net.minecraft.server.v1_13_R2.EnumHand;
|
||||
import net.minecraft.server.v1_13_R2.IRegistry;
|
||||
import net.minecraft.server.v1_8_R3.*;
|
||||
import net.minecraft.server.v1_8_R3.NBTBase;
|
||||
import net.minecraft.server.v1_8_R3.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Particle;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.craftbukkit.v1_12_R1.CraftParticle;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.CraftWorld;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftVillager;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
|
||||
@@ -267,6 +270,31 @@ public class NMSImpl extends NMS {
|
||||
return SimpleReflection.getFieldValue(GenericAttributes.class, null, attribute.name());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Entity getEntityById(int id) {
|
||||
for (World world : Bukkit.getServer().getWorlds()) {
|
||||
net.minecraft.server.v1_13_R2.Entity entity = ((CraftWorld) world).getHandle().getEntity(id);
|
||||
if (entity != null) {
|
||||
return entity.getBukkitEntity();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public io.izzel.taboolib.module.nms.impl.Position fromBlockPosition(Object blockPosition) {
|
||||
return blockPosition instanceof net.minecraft.server.v1_12_R1.BlockPosition ? new io.izzel.taboolib.module.nms.impl.Position(((net.minecraft.server.v1_12_R1.BlockPosition) blockPosition).getX(), ((net.minecraft.server.v1_12_R1.BlockPosition) blockPosition).getY(), ((net.minecraft.server.v1_12_R1.BlockPosition) blockPosition).getZ()) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openSignEditor(Player player, Block block) {
|
||||
try {
|
||||
((org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer) player).getHandle().playerConnection.sendPacket(new net.minecraft.server.v1_12_R1.PacketPlayOutOpenSignEditor(new net.minecraft.server.v1_12_R1.BlockPosition(block.getX(), block.getY(), block.getZ())));
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private Object toNBTBase(io.izzel.taboolib.module.nms.nbt.NBTBase base) {
|
||||
switch (base.getType().getId()) {
|
||||
case 1:
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package io.izzel.taboolib.module.nms.impl;
|
||||
|
||||
/**
|
||||
* @Author sky
|
||||
* @Since 2020-01-14 22:02
|
||||
*/
|
||||
public class Position {
|
||||
|
||||
private int x, y, z;
|
||||
|
||||
public Position(int x, int y, int z) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public int getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
public int getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
public int getZ() {
|
||||
return z;
|
||||
}
|
||||
|
||||
public void setX(int x) {
|
||||
this.x = x;
|
||||
}
|
||||
|
||||
public void setY(int y) {
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
public void setZ(int z) {
|
||||
this.z = z;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user