Now actually update for 1.16.5
This commit is contained in:
parent
e2f530a4dd
commit
f6c1426744
2
pom.xml
2
pom.xml
|
@ -95,7 +95,7 @@
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot</artifactId>
|
||||||
<version>1.14-R0.1-SNAPSHOT</version>
|
<version>1.14-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
|
@ -1,11 +1,19 @@
|
||||||
package net.seanomik.energeticstorage;
|
package net.seanomik.energeticstorage;
|
||||||
|
|
||||||
import de.tr7zw.changeme.nbtapi.NBTCompound;
|
import de.tr7zw.changeme.nbtapi.NBTCompound;
|
||||||
|
import de.tr7zw.changeme.nbtapi.NBTGameProfile;
|
||||||
import de.tr7zw.changeme.nbtapi.NBTItem;
|
import de.tr7zw.changeme.nbtapi.NBTItem;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import com.mojang.authlib.GameProfile;
|
||||||
|
import com.mojang.authlib.properties.Property;
|
||||||
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public enum Skulls {
|
public enum Skulls {
|
||||||
|
|
||||||
LeftGreenArrow("LeftGreenArrow", 0, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTRjNDE3NDZhZjU1N2EyNGJlOGEwOTAzNjlhNTkxYWU2M2Q1Y2U5YzRiZjQwNWQzNTQyNDdkODEwYzdjNyJ9fX0=", "5da5509d-136d-4716-bc2d-d04f82058e91"),
|
LeftGreenArrow("LeftGreenArrow", 0, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTRjNDE3NDZhZjU1N2EyNGJlOGEwOTAzNjlhNTkxYWU2M2Q1Y2U5YzRiZjQwNWQzNTQyNDdkODEwYzdjNyJ9fX0=", "5da5509d-136d-4716-bc2d-d04f82058e91"),
|
||||||
|
@ -21,26 +29,25 @@ public enum Skulls {
|
||||||
this.texture = texture;
|
this.texture = texture;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
item = createSkull(uuid, name);
|
item = createSkull();
|
||||||
}
|
}
|
||||||
|
|
||||||
private ItemStack createSkull (String url, String name) {
|
private ItemStack createSkull() {
|
||||||
ItemStack head = new ItemStack(Material.PLAYER_HEAD, 1, (short) 3);
|
ItemStack head = new ItemStack(Material.PLAYER_HEAD, 1, (short) 3);
|
||||||
if (url.isEmpty()) return head;
|
SkullMeta meta = (SkullMeta) head.getItemMeta();
|
||||||
|
GameProfile profile = new GameProfile(UUID.randomUUID(), null);
|
||||||
|
|
||||||
NBTItem headNBT = new NBTItem(head);
|
profile.getProperties().put("textures", new Property("textures", texture));
|
||||||
String version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
|
|
||||||
|
|
||||||
NBTCompound ownerNBT;
|
try {
|
||||||
if (version.startsWith("v1_16")) {
|
Field profileField = meta.getClass().getDeclaredField("profile");
|
||||||
ownerNBT = headNBT.addCompound("SkullOwner");
|
profileField.setAccessible(true);
|
||||||
} else {
|
profileField.set(meta, profile);
|
||||||
ownerNBT = headNBT.addCompound("Owner");
|
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
ownerNBT.addCompound("Properties").getCompoundList("textures").addCompound().setString("Value", texture);
|
head.setItemMeta(meta);
|
||||||
ownerNBT.setString("Id", uuid);
|
|
||||||
head = headNBT.getItem();
|
|
||||||
|
|
||||||
return head;
|
return head;
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class ItemConstructor {
|
public class ItemConstructor {
|
||||||
private static Material DRIVE_MATERIAL = Material.BLUE_DYE;
|
private static final Material DRIVE_MATERIAL = Material.BLUE_DYE;
|
||||||
|
|
||||||
public static ItemStack createSystemBlock() {
|
public static ItemStack createSystemBlock() {
|
||||||
ItemStack systemBlock = Skulls.Computer.getItemStack();
|
ItemStack systemBlock = Skulls.Computer.getItemStack();
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package net.seanomik.energeticstorage.utils;
|
package net.seanomik.energeticstorage.utils;
|
||||||
|
|
||||||
import de.tr7zw.changeme.nbtapi.NBTCompound;
|
import de.tr7zw.changeme.nbtapi.NBTCompound;
|
||||||
|
import de.tr7zw.changeme.nbtapi.NBTListCompound;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import de.tr7zw.changeme.nbtapi.NBTItem;
|
import de.tr7zw.changeme.nbtapi.NBTItem;
|
||||||
import de.tr7zw.changeme.nbtapi.NBTTileEntity;
|
import de.tr7zw.changeme.nbtapi.NBTTileEntity;
|
||||||
|
@ -141,7 +142,18 @@ public class Utils {
|
||||||
ownerNBT = blockNBT.getCompound("Owner");
|
ownerNBT = blockNBT.getCompound("Owner");
|
||||||
}
|
}
|
||||||
|
|
||||||
return ownerNBT.getCompound("Properties").getCompoundList("textures").get(0).getString("Value").equals(Skulls.Computer.getTexture());
|
if (ownerNBT != null && ownerNBT.getCompound("Properties") != null) {
|
||||||
|
|
||||||
|
//return ownerNBT.getCompound("Properties").getCompoundList("textures").get(0).getString("Value").equals(Skulls.Computer.getTexture());
|
||||||
|
for (NBTListCompound list : ownerNBT.getCompound("Properties").getCompoundList("textures")) {
|
||||||
|
if (list.getString("Value").equals(Skulls.Computer.getTexture())) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isItemADrive(ItemStack item) {
|
public static boolean isItemADrive(ItemStack item) {
|
||||||
|
|
Loading…
Reference in New Issue