mirror of
https://github.com/Zrips/Jobs.git
synced 2025-02-27 09:43:22 +01:00
Updating for the 1.16 support and base color handling
This commit is contained in:
parent
20e54e805c
commit
21fa78ee92
2
pom.xml
2
pom.xml
@ -221,7 +221,7 @@
|
||||
<!-- <artifactId>maven-jar-plugin</artifactId> -->
|
||||
<!-- <version>2.3.1</version> -->
|
||||
<!-- <configuration> -->
|
||||
<!-- <outputDirectory>C:\Users\Arte\Desktop\Server 1.15\plugins\</outputDirectory> -->
|
||||
<!-- <outputDirectory>C:\Users\Arte\Desktop\Server 1.16\plugins\</outputDirectory> -->
|
||||
<!-- </configuration> -->
|
||||
<!-- </plugin> -->
|
||||
</plugins>
|
||||
|
@ -0,0 +1,98 @@
|
||||
package com.gamingmesh.jobs.CMILib;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class ActionBarManager {
|
||||
private static Object packet;
|
||||
private static Method getHandle;
|
||||
private static Method sendPacket;
|
||||
private static Field playerConnection;
|
||||
private static Class<?> nmsChatSerializer;
|
||||
private static Class<?> nmsIChatBaseComponent;
|
||||
private static Class<?> packetType;
|
||||
|
||||
private static Class<?> ChatMessageclz;
|
||||
private static Class<?> sub;
|
||||
private static Object[] consts;
|
||||
|
||||
static {
|
||||
if (Version.isCurrentHigher(Version.v1_7_R4)) {
|
||||
Version version = Version.getCurrent();
|
||||
try {
|
||||
packetType = Class.forName("net.minecraft.server." + version + ".PacketPlayOutChat");
|
||||
Class<?> typeCraftPlayer = Class.forName("org.bukkit.craftbukkit." + version + ".entity.CraftPlayer");
|
||||
Class<?> typeNMSPlayer = Class.forName("net.minecraft.server." + version + ".EntityPlayer");
|
||||
Class<?> typePlayerConnection = Class.forName("net.minecraft.server." + version + ".PlayerConnection");
|
||||
nmsChatSerializer = Class.forName(getChatSerializerClasspath());
|
||||
nmsIChatBaseComponent = Class.forName("net.minecraft.server." + version + ".IChatBaseComponent");
|
||||
getHandle = typeCraftPlayer.getMethod("getHandle");
|
||||
playerConnection = typeNMSPlayer.getField("playerConnection");
|
||||
sendPacket = typePlayerConnection.getMethod("sendPacket", Class.forName("net.minecraft.server." + version + ".Packet"));
|
||||
if (Version.isCurrentHigher(Version.v1_11_R1)) {
|
||||
ChatMessageclz = Class.forName("net.minecraft.server." + version + ".ChatMessageType");
|
||||
consts = ChatMessageclz.getEnumConstants();
|
||||
sub = consts[2].getClass();
|
||||
}
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException | NoSuchFieldException ex) {
|
||||
Bukkit.getConsoleSender().sendMessage("Error {0} ");
|
||||
Bukkit.getConsoleSender().sendMessage(ex.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void send(CommandSender receivingPacket, String msg) {
|
||||
if (receivingPacket instanceof Player)
|
||||
send((Player) receivingPacket, msg);
|
||||
else
|
||||
receivingPacket.sendMessage(msg);
|
||||
}
|
||||
|
||||
public static void send(Player receivingPacket, String msg) {
|
||||
if (receivingPacket == null)
|
||||
return;
|
||||
if (!receivingPacket.isOnline())
|
||||
return;
|
||||
if (msg == null)
|
||||
return;
|
||||
|
||||
try {
|
||||
if (!Version.getCurrent().isHigher(Version.v1_7_R4) || nmsChatSerializer == null) {
|
||||
receivingPacket.sendMessage(CMIChatColor.translate(msg));
|
||||
return;
|
||||
}
|
||||
|
||||
RawMessage rm = new RawMessage();
|
||||
rm.add(msg);
|
||||
Object serialized = nmsChatSerializer.getMethod("a", String.class).invoke(null, CMIChatColor.translate(rm.getRaw()));
|
||||
if (Version.isCurrentHigher(Version.v1_15_R1))
|
||||
packet = packetType.getConstructor(nmsIChatBaseComponent, sub, UUID.class).newInstance(serialized, consts[2], receivingPacket.getUniqueId());
|
||||
else if (Version.isCurrentHigher(Version.v1_11_R1)) {
|
||||
packet = packetType.getConstructor(nmsIChatBaseComponent, sub).newInstance(serialized, consts[2]);
|
||||
} else if (Version.isCurrentHigher(Version.v1_7_R4)) {
|
||||
packet = packetType.getConstructor(nmsIChatBaseComponent, byte.class).newInstance(serialized, (byte) 2);
|
||||
} else {
|
||||
packet = packetType.getConstructor(nmsIChatBaseComponent, int.class).newInstance(serialized, 2);
|
||||
}
|
||||
Object player = getHandle.invoke(receivingPacket);
|
||||
Object connection = playerConnection.get(player);
|
||||
|
||||
sendPacket.invoke(connection, packet);
|
||||
return;
|
||||
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static String getChatSerializerClasspath() {
|
||||
if (!Version.isCurrentHigher(Version.v1_8_R2))
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".ChatSerializer";
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".IChatBaseComponent$ChatSerializer";// 1_8_R2 moved to IChatBaseComponent
|
||||
}
|
||||
}
|
@ -1,235 +0,0 @@
|
||||
package com.gamingmesh.jobs.CMILib;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
|
||||
public class ActionBarTitleMessages {
|
||||
private static Object packet;
|
||||
private static Method getHandle;
|
||||
private static Method sendPacket;
|
||||
private static Field playerConnection;
|
||||
private static Class<?> nmsChatSerializer;
|
||||
private static Class<?> nmsIChatBaseComponent;
|
||||
private static Class<?> packetType;
|
||||
|
||||
private static Constructor<?> nmsPacketPlayOutTitle;
|
||||
private static Class<?> enumTitleAction;
|
||||
private static Method fromString;
|
||||
private static boolean simpleTitleMessages = false;
|
||||
|
||||
private static Class<?> ChatMessageclz;
|
||||
private static Class<?> sub;
|
||||
private static Object[] consts;
|
||||
|
||||
static {
|
||||
if (Version.getCurrent().isHigher(Version.v1_7_R4)) {
|
||||
try {
|
||||
packetType = Class.forName(getPacketPlayOutChat());
|
||||
Class<?> typeCraftPlayer = Class.forName(getCraftPlayerClasspath());
|
||||
Class<?> typeNMSPlayer = Class.forName(getNMSPlayerClasspath());
|
||||
Class<?> typePlayerConnection = Class.forName(getPlayerConnectionClasspath());
|
||||
nmsChatSerializer = Class.forName(getChatSerializerClasspath());
|
||||
nmsIChatBaseComponent = Class.forName(getIChatBaseComponentClasspath());
|
||||
getHandle = typeCraftPlayer.getMethod("getHandle");
|
||||
playerConnection = typeNMSPlayer.getField("playerConnection");
|
||||
sendPacket = typePlayerConnection.getMethod("sendPacket", Class.forName(getPacketClasspath()));
|
||||
|
||||
if (Version.isCurrentHigher(Version.v1_11_R1)) {
|
||||
ChatMessageclz = Class.forName(getChatMessageTypeClasspath());
|
||||
consts = ChatMessageclz.getEnumConstants();
|
||||
sub = consts[2].getClass();
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
Bukkit.getLogger().log(Level.SEVERE, "Error {0}", ex);
|
||||
}
|
||||
// Title
|
||||
try {
|
||||
Class<?> typePacketPlayOutTitle = Class.forName(getPacketPlayOutTitleClasspath());
|
||||
enumTitleAction = Class.forName(getEnumTitleActionClasspath());
|
||||
nmsPacketPlayOutTitle = typePacketPlayOutTitle.getConstructor(enumTitleAction, nmsIChatBaseComponent);
|
||||
fromString = Class.forName(getClassMessageClasspath()).getMethod("fromString", String.class);
|
||||
} catch (Exception ex) {
|
||||
simpleTitleMessages = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void send(CommandSender receivingPacket, String msg) {
|
||||
if (receivingPacket instanceof Player)
|
||||
send((Player) receivingPacket, msg);
|
||||
else
|
||||
receivingPacket.sendMessage(msg);
|
||||
}
|
||||
|
||||
public void send(Player receivingPacket, String msg) {
|
||||
if (receivingPacket == null)
|
||||
return;
|
||||
if (!receivingPacket.isOnline())
|
||||
return;
|
||||
if (msg == null)
|
||||
return;
|
||||
try {
|
||||
if (!Version.getCurrent().isHigher(Version.v1_7_R4) || nmsChatSerializer == null) {
|
||||
receivingPacket.sendMessage(ChatColor.translateAlternateColorCodes('&', msg));
|
||||
return;
|
||||
}
|
||||
|
||||
Object serialized = nmsChatSerializer.getMethod("a", String.class).invoke(null, "{\"text\": \"" + ChatColor.translateAlternateColorCodes('&', msg) + "\"}");
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_16_R1)) {
|
||||
packet = packetType.getConstructor(nmsIChatBaseComponent, sub, UUID.class)
|
||||
.newInstance(serialized, consts[2], receivingPacket.getUniqueId());
|
||||
} else if (Version.isCurrentHigher(Version.v1_11_R1))
|
||||
packet = packetType.getConstructor(nmsIChatBaseComponent, sub).newInstance(serialized, consts[2]);
|
||||
else if (Version.isCurrentHigher(Version.v1_7_R4)) {
|
||||
packet = packetType.getConstructor(nmsIChatBaseComponent, byte.class).newInstance(serialized, (byte) 2);
|
||||
} else {
|
||||
packet = packetType.getConstructor(nmsIChatBaseComponent, int.class).newInstance(serialized, 2);
|
||||
}
|
||||
Object player = getHandle.invoke(receivingPacket);
|
||||
Object connection = playerConnection.get(player);
|
||||
sendPacket.invoke(connection, packet);
|
||||
} catch (Throwable t) {
|
||||
}
|
||||
|
||||
try {
|
||||
Object player = getHandle.invoke(receivingPacket);
|
||||
Object connection = playerConnection.get(player);
|
||||
sendPacket.invoke(connection, packet);
|
||||
} catch (Exception t) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void sendTitle(final Player receivingPacket, final Object title, final Object subtitle) {
|
||||
sendTitle(receivingPacket, title, subtitle, 0, 20, 20);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static void sendTitle(final Player receivingPacket, final Object title, final Object subtitle, final int fadeIn, final int keep, final int fadeOut) {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(Jobs.getInstance(), () -> {
|
||||
String t = title == null ? null : CMIChatColor.translate((String) title);
|
||||
String s = subtitle == null ? null : CMIChatColor.translate((String) subtitle);
|
||||
|
||||
if (simpleTitleMessages) {
|
||||
receivingPacket.sendMessage(t);
|
||||
receivingPacket.sendMessage(s);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
switch (Version.getCurrent()) {
|
||||
case v1_9_R1:
|
||||
case v1_9_R2:
|
||||
case v1_10_R1:
|
||||
case v1_11_R1:
|
||||
receivingPacket.sendTitle(t, s);
|
||||
break;
|
||||
case v1_12_R1:
|
||||
case v1_13_R1:
|
||||
case v1_13_R2:
|
||||
case v1_14_R1:
|
||||
case v1_14_R2:
|
||||
case v1_15_R1:
|
||||
case v1_15_R2:
|
||||
case v1_16_R1:
|
||||
case v1_16_R2:
|
||||
receivingPacket.sendTitle(t, s, fadeIn, keep, fadeOut);
|
||||
break;
|
||||
case v1_7_R1:
|
||||
case v1_7_R2:
|
||||
case v1_7_R3:
|
||||
case v1_7_R4:
|
||||
case v1_8_R1:
|
||||
case v1_8_R2:
|
||||
case v1_8_R3:
|
||||
if (title != null) {
|
||||
Object packetTitle = nmsPacketPlayOutTitle.newInstance(enumTitleAction.getField("TITLE").get(null),
|
||||
((Object[]) fromString.invoke(null, t))[0]);
|
||||
sendPacket(receivingPacket, packetTitle);
|
||||
}
|
||||
if (subtitle != null) {
|
||||
if (title == null) {
|
||||
Object packetTitle = nmsPacketPlayOutTitle.newInstance(enumTitleAction.getField("TITLE").get(null), ((Object[]) fromString.invoke(null, ""))[0]);
|
||||
sendPacket(receivingPacket, packetTitle);
|
||||
}
|
||||
Object packetSubtitle = nmsPacketPlayOutTitle.newInstance(enumTitleAction.getField("SUBTITLE").get(null),
|
||||
((Object[]) fromString.invoke(null, s))[0]);
|
||||
sendPacket(receivingPacket, packetSubtitle);
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
simpleTitleMessages = true;
|
||||
Bukkit.getLogger().log(Level.SEVERE, "Your server can't fully support title messages. They will be shown in chat instead.");
|
||||
}
|
||||
return;
|
||||
});
|
||||
}
|
||||
|
||||
private static void sendPacket(Player player, Object packet) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
|
||||
Object handle = getHandle.invoke(player);
|
||||
Object connection = playerConnection.get(handle);
|
||||
sendPacket.invoke(connection, packet);
|
||||
}
|
||||
|
||||
private static String getCraftPlayerClasspath() {
|
||||
return "org.bukkit.craftbukkit." + Version.getCurrent() + ".entity.CraftPlayer";
|
||||
}
|
||||
|
||||
private static String getPlayerConnectionClasspath() {
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".PlayerConnection";
|
||||
}
|
||||
|
||||
private static String getNMSPlayerClasspath() {
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".EntityPlayer";
|
||||
}
|
||||
|
||||
private static String getPacketClasspath() {
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".Packet";
|
||||
}
|
||||
|
||||
private static String getIChatBaseComponentClasspath() {
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".IChatBaseComponent";
|
||||
}
|
||||
|
||||
private static String getChatSerializerClasspath() {
|
||||
if (!Version.isCurrentHigher(Version.v1_8_R2))
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".ChatSerializer";
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".IChatBaseComponent$ChatSerializer";// 1_8_R2 moved to IChatBaseComponent
|
||||
}
|
||||
|
||||
private static String getPacketPlayOutChat() {
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".PacketPlayOutChat";
|
||||
}
|
||||
|
||||
private static String getPacketPlayOutTitleClasspath() {
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".PacketPlayOutTitle";
|
||||
}
|
||||
|
||||
private static String getEnumTitleActionClasspath() {
|
||||
return getPacketPlayOutTitleClasspath() + "$EnumTitleAction";
|
||||
}
|
||||
|
||||
private static String getClassMessageClasspath() {
|
||||
return "org.bukkit.craftbukkit." + Version.getCurrent() + ".util.CraftChatMessage";
|
||||
}
|
||||
|
||||
private static String getChatMessageTypeClasspath() {
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".ChatMessageType";
|
||||
}
|
||||
}
|
@ -11,8 +11,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Color;
|
||||
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class CMIChatColor {
|
||||
|
||||
@ -85,14 +84,14 @@ public class CMIChatColor {
|
||||
|
||||
if (Version.isCurrentLower(Version.v1_16_R1) && name.equalsIgnoreCase("Hex"))
|
||||
return;
|
||||
|
||||
BY_CHAR.put(Character.valueOf(c), this);
|
||||
BY_NAME.put(this.getName().toLowerCase().replace("_", ""), this);
|
||||
}
|
||||
|
||||
public static String translate(String text) {
|
||||
|
||||
if (text == null)
|
||||
return "";
|
||||
return null;
|
||||
|
||||
if (text.contains("#")) {
|
||||
|
||||
@ -120,23 +119,14 @@ public class CMIChatColor {
|
||||
}
|
||||
|
||||
public static String colorize(String text) {
|
||||
return text == null ? "" : translate(text);
|
||||
}
|
||||
|
||||
public static List<String> deColorize(List<String> text) {
|
||||
if (text == null)
|
||||
return new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < text.size(); i++) {
|
||||
text.set(i, deColorize(text.get(i)));
|
||||
}
|
||||
|
||||
return text;
|
||||
return null;
|
||||
return translate(text);
|
||||
}
|
||||
|
||||
public static String deColorize(String text) {
|
||||
if (text == null)
|
||||
return "";
|
||||
return null;
|
||||
|
||||
text = CMIChatColor.translate(text);
|
||||
return text.replace("§", "&");
|
||||
@ -144,14 +134,14 @@ public class CMIChatColor {
|
||||
|
||||
public static String stripColor(String text) {
|
||||
if (text == null)
|
||||
return "";
|
||||
return null;
|
||||
text = CMIChatColor.translate(text);
|
||||
return ChatColor.stripColor(text);
|
||||
}
|
||||
|
||||
public static String getLastColors(String text) {
|
||||
if (text == null)
|
||||
return "";
|
||||
return null;
|
||||
// text = CMIChatColor.translate(text);
|
||||
return ChatColor.getLastColors(text);
|
||||
}
|
||||
@ -228,7 +218,9 @@ public class CMIChatColor {
|
||||
}
|
||||
|
||||
public Color getRGBColor() {
|
||||
return blue < 0 ? null : Color.fromBGR(blue, green, red);
|
||||
if (blue < 0)
|
||||
return null;
|
||||
return Color.fromBGR(blue, green, red);
|
||||
}
|
||||
|
||||
public String getHex() {
|
||||
@ -260,4 +252,11 @@ public class CMIChatColor {
|
||||
}
|
||||
return "#" + hex;
|
||||
}
|
||||
|
||||
public static List<String> deColorize(List<String> lore) {
|
||||
for (int i = 0; i < lore.size(); i++) {
|
||||
lore.set(i, deColorize(lore.get(i)));
|
||||
}
|
||||
return lore;
|
||||
}
|
||||
}
|
||||
|
@ -2,15 +2,19 @@ package com.gamingmesh.jobs.CMILib;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.block.CreatureSpawner;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BlockStateMeta;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
public enum CMIEntityType {
|
||||
|
||||
DROPPED_ITEM(1, "Item"),
|
||||
EXPERIENCE_ORB(2, "Experience Orb"),
|
||||
AREA_EFFECT_CLOUD(3, "Area Effect Cloud"),
|
||||
@ -122,9 +126,6 @@ public enum CMIEntityType {
|
||||
"ZGZiNjc1Y2I1YTdlM2ZkMjVlMjlkYTgyNThmMjRmYzAyMGIzZmE5NTAzNjJiOGJjOGViMjUyZTU2ZTc0In19fQ==")),
|
||||
SHULKER(69, "Shulker", Arrays.asList(
|
||||
"MWU3MzgzMmUyNzJmODg0NGM0NzY4NDZiYzQyNGEzNDMyZmI2OThjNThlNmVmMmE5ODcxYzdkMjlhZWVhNyJ9fX0=")),
|
||||
CAT(75, "Cat", Arrays.asList(
|
||||
"N2M5Yjc0MDllN2I1MzgzYzE5YjM2MmIyYTBjYjQzZDUwOTNiMTNlMmIyMzRlOGExODkxNTYzZTU1ZWFlOWQ2OCJ9fX0=",
|
||||
"NTg4MDNmMDI3MGY4Y2RmNGUwZmU5NzMyZDQ5NjdjY2NjMGEyZjRmY2QxMThjZDE1MDAwOTc5YjE4ODg1MTQ0ZiJ9fX0=")),
|
||||
PIG(90, "Pig", Arrays.asList(
|
||||
"NjIxNjY4ZWY3Y2I3OWRkOWMyMmNlM2QxZjNmNGNiNmUyNTU5ODkzYjZkZjRhNDY5NTE0ZTY2N2MxNmFhNCJ9fX0=",
|
||||
"YzNhYmQ0NGFlNjdkOWM5MjU0ZDE3N2U5NjU4ZGE4NDg0MzM4OWQ1ZTFmZmQyYWYxZmI1MTIxN2M3NWMyOTgifX19")),
|
||||
@ -189,19 +190,9 @@ public enum CMIEntityType {
|
||||
"ZjBiZmE4NTBmNWRlNGIyOTgxY2NlNzhmNTJmYzJjYzdjZDdiNWM2MmNhZWZlZGRlYjljZjMxMWU4M2Q5MDk3In19fQ==",
|
||||
"ZjhhODJjOGI3NWRkMWMyY2U4MTMzYzBiYTkzOWI4YzUyZTQ3ZDNlYzM3NDk1MGY0N2RkZGJiZTM0NWUyMCJ9fX0=",
|
||||
"YWNhNTgwYjA1MWM2M2JlMjlkYTU0NWE5YWE3ZmY3ZTEzNmRmNzdhODFjNjdkYzFlZTllNjE3MGMxNGZiMzEwIn19fQ==")),
|
||||
PANDA(113, "Panda", Arrays.asList(
|
||||
"ZDE4OGM5ODBhYWNmYTk0Y2YzMzA4ODUxMmIxYjk1MTdiYTgyNmIxNTRkNGNhZmMyNjJhZmY2OTc3YmU4YSJ9fX0=")),
|
||||
PILLAGER(114, "Pillager", Arrays.asList(
|
||||
"NGFlZTZiYjM3Y2JmYzkyYjBkODZkYjVhZGE0NzkwYzY0ZmY0NDY4ZDY4Yjg0OTQyZmRlMDQ0MDVlOGVmNTMzMyJ9fX0=")),
|
||||
VILLAGER(120, "Villager", Arrays.asList(
|
||||
"ODIyZDhlNzUxYzhmMmZkNGM4OTQyYzQ0YmRiMmY1Y2E0ZDhhZThlNTc1ZWQzZWIzNGMxOGE4NmU5M2IifX19")),
|
||||
FOX(121, "Fox", Arrays.asList(
|
||||
"YjZmZWI3NjFiMmY1OWZhYmU1Y2MzY2M4MmE5MzRiNTM0ZWE5OWVkYjkxMzJjY2RhOWY0ODRiZDU5ODZkNyJ9fX0=",
|
||||
"MjRhMDM0NzQzNjQzNGViMTNkNTM3YjllYjZiNDViNmVmNGM1YTc4Zjg2ZTkxODYzZWY2MWQyYjhhNTNiODIifX19",
|
||||
"MTZkYjdkNTA3Mzg5YTE0YmJlYzM5ZGU2OTIyMTY1YjMyZDQzNjU3YmNiNmFhZjRiNTE4MjgyNWIyMmI0In19fQ==")),
|
||||
ENDER_CRYSTAL(200, "End Crystal"),
|
||||
WANDERING_TRADER(604, "Wandering Trader", Arrays.asList(
|
||||
"NWYxMzc5YTgyMjkwZDdhYmUxZWZhYWJiYzcwNzEwZmYyZWMwMmRkMzRhZGUzODZiYzAwYzkzMGM0NjFjZjkzMiJ9fX0=")),
|
||||
TURTLE(901, "Turtle", Arrays.asList(
|
||||
"MGE0MDUwZTdhYWNjNDUzOTIwMjY1OGZkYzMzOWRkMTgyZDdlMzIyZjlmYmNjNGQ1Zjk5YjU3MThhIn19fQ==")),
|
||||
PHANTOM(902, "Phantom", Arrays.asList(
|
||||
@ -233,20 +224,32 @@ public enum CMIEntityType {
|
||||
COMPLEX_PART(915, "Complex Part"),
|
||||
TIPPED_ARROW(916, "Tipped Arrow"),
|
||||
|
||||
TRADER_LLAMA(918, "Trader Llama", Arrays.asList(
|
||||
"ODQyNDc4MGIzYzVjNTM1MWNmNDlmYjViZjQxZmNiMjg5NDkxZGY2YzQzMDY4M2M4NGQ3ODQ2MTg4ZGI0Zjg0ZCJ9fX0=",
|
||||
"NzA4N2E1NTZkNGZmYTk1ZWNkMjg0NGYzNTBkYzQzZTI1NGU1ZDUzNWZhNTk2ZjU0MGQ3ZTc3ZmE2N2RmNDY5NiJ9fX0=",
|
||||
"YmU0ZDhhMGJjMTVmMjM5OTIxZWZkOGJlMzQ4MGJhNzdhOThlZTdkOWNlMDA3MjhjMGQ3MzNmMGEyZDYxNGQxNiJ9fX0=")),
|
||||
PANDA(917, "Panda", Arrays.asList(
|
||||
"ZDE4OGM5ODBhYWNmYTk0Y2YzMzA4ODUxMmIxYjk1MTdiYTgyNmIxNTRkNGNhZmMyNjJhZmY2OTc3YmU4YSJ9fX0=")),
|
||||
PILLAGER(918, "Pillager", Arrays.asList(
|
||||
"NGFlZTZiYjM3Y2JmYzkyYjBkODZkYjVhZGE0NzkwYzY0ZmY0NDY4ZDY4Yjg0OTQyZmRlMDQ0MDVlOGVmNTMzMyJ9fX0=")),
|
||||
RAVAGER(919, "Ravager", Arrays.asList(
|
||||
"MWNiOWYxMzlmOTQ4OWQ4NmU0MTBhMDZkOGNiYzY3MGM4MDI4MTM3NTA4ZTNlNGJlZjYxMmZlMzJlZGQ2MDE5MyJ9fX0=",
|
||||
"M2I2MjUwMWNkMWI4N2IzN2Y2MjgwMTgyMTBlYzU0MDBjYjY1YTRkMWFhYjc0ZTZhM2Y3ZjYyYWE4NWRiOTdlZSJ9fX0=")),
|
||||
TRADER_LLAMA(920, "Trader Llama", Arrays.asList(
|
||||
"ODQyNDc4MGIzYzVjNTM1MWNmNDlmYjViZjQxZmNiMjg5NDkxZGY2YzQzMDY4M2M4NGQ3ODQ2MTg4ZGI0Zjg0ZCJ9fX0=",
|
||||
"NzA4N2E1NTZkNGZmYTk1ZWNkMjg0NGYzNTBkYzQzZTI1NGU1ZDUzNWZhNTk2ZjU0MGQ3ZTc3ZmE2N2RmNDY5NiJ9fX0=",
|
||||
"YmU0ZDhhMGJjMTVmMjM5OTIxZWZkOGJlMzQ4MGJhNzdhOThlZTdkOWNlMDA3MjhjMGQ3MzNmMGEyZDYxNGQxNiJ9fX0=")),
|
||||
WANDERING_TRADER(921, "Wandering Trader", Arrays.asList(
|
||||
"NWYxMzc5YTgyMjkwZDdhYmUxZWZhYWJiYzcwNzEwZmYyZWMwMmRkMzRhZGUzODZiYzAwYzkzMGM0NjFjZjkzMiJ9fX0=")),
|
||||
FOX(922, "Fox", Arrays.asList(
|
||||
"YjZmZWI3NjFiMmY1OWZhYmU1Y2MzY2M4MmE5MzRiNTM0ZWE5OWVkYjkxMzJjY2RhOWY0ODRiZDU5ODZkNyJ9fX0=",
|
||||
"MjRhMDM0NzQzNjQzNGViMTNkNTM3YjllYjZiNDViNmVmNGM1YTc4Zjg2ZTkxODYzZWY2MWQyYjhhNTNiODIifX19",
|
||||
"MTZkYjdkNTA3Mzg5YTE0YmJlYzM5ZGU2OTIyMTY1YjMyZDQzNjU3YmNiNmFhZjRiNTE4MjgyNWIyMmI0In19fQ==")),
|
||||
CAT(923, "Cat", Arrays.asList(
|
||||
"N2M5Yjc0MDllN2I1MzgzYzE5YjM2MmIyYTBjYjQzZDUwOTNiMTNlMmIyMzRlOGExODkxNTYzZTU1ZWFlOWQ2OCJ9fX0=",
|
||||
"NTg4MDNmMDI3MGY4Y2RmNGUwZmU5NzMyZDQ5NjdjY2NjMGEyZjRmY2QxMThjZDE1MDAwOTc5YjE4ODg1MTQ0ZiJ9fX0=")),
|
||||
BEE(924, "Bee", Arrays.asList(
|
||||
"OTQ3MzIyZjgzMWUzYzE2OGNmYmQzZTI4ZmU5MjUxNDRiMjYxZTc5ZWIzOWM3NzEzNDlmYWM1NWE4MTI2NDczIn19fQ==",
|
||||
"OTlkYzNmMDBlY2FiMjI0OWJiNmExNmM4YzUxMTVjZWI5ZjIzMjA1YTBkNTVjYzBlOWJhYmQyNTYyZjc5NTljNCJ9fX0==",
|
||||
"ZTZiNzRlMDUyYjc0Mjg4Nzk5YmE2ZDlmMzVjNWQwMjIxY2Y4YjA0MzMxNTQ3ZWMyZjY4ZDczNTk3YWUyYzliIn19fQ==",
|
||||
"YmIxNzc3NDY2MjUxMmQ3ODdlZjc3YjFhNDZhMDRlMmM2ZmQ2Nzc5NGJmN2Y3Nzk1NjZlYjIxYzgxNDNhYWQ5ZSJ9fX0=")),
|
||||
|
||||
// 1.16
|
||||
ZOMBIFIED_PIGLIN(929, "Zombified Piglin", Arrays.asList("N2VhYmFlY2M1ZmFlNWE4YTQ5Yzg4NjNmZjQ4MzFhYWEyODQxOThmMWEyMzk4ODkwYzc2NWUwYThkZTE4ZGE4YyJ9fX0=")),
|
||||
HOGLIN(925, "Hoglin", Arrays.asList("OWJiOWJjMGYwMWRiZDc2MmEwOGQ5ZTc3YzA4MDY5ZWQ3Yzk1MzY0YWEzMGNhMTA3MjIwODU2MWI3MzBlOGQ3NSJ9fX0=")),
|
||||
PIGLIN(926, "Piglin", Arrays.asList("OWYxODEwN2QyNzVmMWNiM2E5Zjk3M2U1OTI4ZDU4NzlmYTQwMzI4ZmYzMjU4MDU0ZGI2ZGQzZTdjMGNhNjMzMCJ9fX0=")),
|
||||
@ -348,7 +351,7 @@ public enum CMIEntityType {
|
||||
Integer id = null;
|
||||
try {
|
||||
id = Integer.parseInt(main);
|
||||
} catch (NumberFormatException e) {
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
for (CMIEntityType one : CMIEntityType.values()) {
|
||||
@ -445,15 +448,20 @@ public enum CMIEntityType {
|
||||
CMIEntityType ctype = CMIEntityType.getByType(type);
|
||||
if (ctype != null)
|
||||
return ctype.getName();
|
||||
|
||||
String name = type.name();
|
||||
|
||||
name = name.toLowerCase().replace("_", " ");
|
||||
name = name.substring(0, 1).toUpperCase() + name.substring(1);
|
||||
return name;
|
||||
}
|
||||
|
||||
public CMIMaterial getSpawnEggMaterial() {
|
||||
|
||||
CMIMaterial m = CMIMaterial.get((this.equals(CMIEntityType.MUSHROOM_COW) ? "Mooshroom".toLowerCase() : this.toString().toLowerCase()) + "_spawn_egg");
|
||||
return m != null && m.isMonsterEgg() ? m : null;
|
||||
|
||||
if (m != null && m.isMonsterEgg())
|
||||
return m;
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -13,9 +13,6 @@ import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Skull;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gamingmesh.jobs.CMILib.ItemManager.SlabType;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
|
||||
public enum CMIMaterial {
|
||||
NONE(null, "None"),
|
||||
ACACIA_BOAT(447, 0, 27326, "Acacia Boat", "BOAT_ACACIA"),
|
||||
@ -77,7 +74,7 @@ public enum CMIMaterial {
|
||||
BLACK_STAINED_GLASS(95, 15, 13941, Arrays.asList(CMIMaterialCriteria.seeThrow), "Black Stained Glass", "STAINED_GLASS"),
|
||||
BLACK_STAINED_GLASS_PANE(160, 15, 13201, Arrays.asList(CMIMaterialCriteria.seeThrow), "Black Stained Glass Pane", "STAINED_GLASS_PANE"),
|
||||
BLACK_TERRACOTTA(159, 15, 26691, "Black Terracotta", "STAINED_CLAY"),
|
||||
BLACK_WALL_BANNER(177, 0, 4919, "Black Banner"),
|
||||
BLACK_WALL_BANNER(117, 0, 4919, "Black Banner"),
|
||||
BLACK_WOOL(35, 15, 16693, "Black Wool"),
|
||||
BLAZE_POWDER(377, 0, 18941, "Blaze Powder"),
|
||||
BLAZE_ROD(369, 0, 8289, "Blaze Rod"),
|
||||
@ -94,7 +91,7 @@ public enum CMIMaterial {
|
||||
BLUE_STAINED_GLASS(95, 11, 7107, Arrays.asList(CMIMaterialCriteria.seeThrow), "Blue Stained Glass"),
|
||||
BLUE_STAINED_GLASS_PANE(160, 11, 28484, Arrays.asList(CMIMaterialCriteria.seeThrow), "Blue Stained Glass Pane"),
|
||||
BLUE_TERRACOTTA(159, 11, 5236, "Blue Terracotta"),
|
||||
BLUE_WALL_BANNER(177, 4, 17757, "Blue Banner"),
|
||||
BLUE_WALL_BANNER(117, 4, 17757, "Blue Banner"),
|
||||
BLUE_WOOL(35, 11, 15738, "Blue Wool"),
|
||||
BONE(352, 0, 5686, "Bone"),
|
||||
BONE_BLOCK(216, 0, 17312, "Bone Block"),
|
||||
@ -125,7 +122,7 @@ public enum CMIMaterial {
|
||||
BROWN_STAINED_GLASS(95, 12, 20945, Arrays.asList(CMIMaterialCriteria.seeThrow), "Brown Stained Glass"),
|
||||
BROWN_STAINED_GLASS_PANE(160, 12, 17557, Arrays.asList(CMIMaterialCriteria.seeThrow), "Brown Stained Glass Pane"),
|
||||
BROWN_TERRACOTTA(159, 12, 23664, "Brown Terracotta"),
|
||||
BROWN_WALL_BANNER(177, 3, 14731, "Brown Banner"),
|
||||
BROWN_WALL_BANNER(117, 3, 14731, "Brown Banner"),
|
||||
BROWN_WOOL(35, 12, 32638, "Brown Wool"),
|
||||
BUBBLE_COLUMN(13758, "Bubble Column"),
|
||||
BUBBLE_CORAL(12464, "Bubble Coral"),
|
||||
@ -136,8 +133,8 @@ public enum CMIMaterial {
|
||||
CACTUS(81, 0, 12191, "Cactus"),
|
||||
CACTUS_GREEN(351, 2, 17296, "Cactus Green"),
|
||||
CAKE(354, 0, 27048, "Cake"),
|
||||
CARROT(391, 0, 22824, "Carrot", "Carrotitem"),
|
||||
CARROTS(141, 0, 17258, "Carrots"),
|
||||
CARROT(141, 0, 22824, "Carrot", "Carrotitem"),
|
||||
CARROTS(391, 0, 17258, "Carrots"),
|
||||
CARROT_ON_A_STICK(398, 0, 27809, "Carrot on a Stick", "carrotstick"),
|
||||
CARVED_PUMPKIN(25833, "Carved Pumpkin"),
|
||||
CAULDRON(380, 0, 26531, "Cauldron", "CAULDRON_ITEM"),
|
||||
@ -210,7 +207,7 @@ public enum CMIMaterial {
|
||||
CYAN_STAINED_GLASS(95, 9, 30604, Arrays.asList(CMIMaterialCriteria.seeThrow), "Cyan Stained Glass"),
|
||||
CYAN_STAINED_GLASS_PANE(160, 9, 11784, Arrays.asList(CMIMaterialCriteria.seeThrow), "Cyan Stained Glass Pane"),
|
||||
CYAN_TERRACOTTA(159, 9, 25940, "Cyan Terracotta"),
|
||||
CYAN_WALL_BANNER(177, 6, 10889, "Cyan Banner"),
|
||||
CYAN_WALL_BANNER(117, 6, 10889, "Cyan Banner"),
|
||||
CYAN_WOOL(35, 9, 12221, "Cyan Wool"),
|
||||
DAMAGED_ANVIL(145, 2, 10274, "Damaged Anvil"),
|
||||
DANDELION(37, 0, 30558, "Dandelion", "YELLOW_FLOWER"),
|
||||
@ -296,8 +293,8 @@ public enum CMIMaterial {
|
||||
ENDER_CHEST(130, 0, 32349, "Ender Chest"),
|
||||
ENDER_EYE(381, 0, 24860, "Eye of Ender"),
|
||||
ENDER_PEARL(368, 0, 5259, "Ender Pearl"),
|
||||
END_CRYSTAL(426, 0, 19090, "End Crystal", "ENDER_CRYSTAL"),
|
||||
END_GATEWAY(209, 0, 26605, "End Gateway", "ENDER_GATEWAY"),
|
||||
END_CRYSTAL(426, 0, 19090, "End Crystal"),
|
||||
END_GATEWAY(209, 0, 26605, "End Gateway"),
|
||||
END_PORTAL(119, 0, 16782, "End Portal"),
|
||||
END_PORTAL_FRAME(120, 0, 15480, "End Portal Frame", "ENDER_PORTAL_FRAME"),
|
||||
END_ROD(198, 0, 24832, "End Rod"),
|
||||
@ -345,7 +342,7 @@ public enum CMIMaterial {
|
||||
GOLDEN_PICKAXE(285, 0, 10901, "Golden Pickaxe", "GOLD_PICKAXE"),
|
||||
GOLDEN_SHOVEL(284, 0, 15597, "Golden Shovel", "GOLD_SPADE"),
|
||||
GOLDEN_SWORD(283, 0, 10505, "Golden Sword", "GOLD_SWORD"),
|
||||
GOLD_BLOCK(41, 0, 27392, "Block of Gold"),
|
||||
GOLD_BLOCK(41, 0, 27392, "Block of Gold", "GOLD_BLOCK"),
|
||||
GOLD_INGOT(266, 0, 28927, "Gold Ingot"),
|
||||
GOLD_NUGGET(371, 0, 28814, "Gold Nugget"),
|
||||
GOLD_ORE(14, 0, 32625, "Gold Ore"),
|
||||
@ -365,7 +362,7 @@ public enum CMIMaterial {
|
||||
GRAY_STAINED_GLASS(95, 7, 29979, Arrays.asList(CMIMaterialCriteria.seeThrow), "Gray Stained Glass"),
|
||||
GRAY_STAINED_GLASS_PANE(160, 7, 25272, Arrays.asList(CMIMaterialCriteria.seeThrow), "Gray Stained Glass Pane"),
|
||||
GRAY_TERRACOTTA(159, 7, 18004, "Gray Terracotta"),
|
||||
GRAY_WALL_BANNER(177, 8, 24275, "Gray Banner"),
|
||||
GRAY_WALL_BANNER(117, 8, 24275, "Gray Banner"),
|
||||
GRAY_WOOL(35, 7, 27209, "Gray Wool"),
|
||||
GREEN_BANNER(425, 2, 10698, "Green Banner"),
|
||||
GREEN_BED(355, 13, 13797, "Green Bed"),
|
||||
@ -377,11 +374,11 @@ public enum CMIMaterial {
|
||||
GREEN_STAINED_GLASS(95, 13, 22503, Arrays.asList(CMIMaterialCriteria.seeThrow), "Green Stained Glass"),
|
||||
GREEN_STAINED_GLASS_PANE(160, 13, 4767, Arrays.asList(CMIMaterialCriteria.seeThrow), "Green Stained Glass Pane"),
|
||||
GREEN_TERRACOTTA(159, 13, 4105, "Green Terracotta"),
|
||||
GREEN_WALL_BANNER(177, 2, 15046, "Green Banner"),
|
||||
GREEN_WALL_BANNER(117, 2, 15046, "Green Banner"),
|
||||
GREEN_WOOL(35, 13, 25085, "Green Wool"),
|
||||
GUARDIAN_SPAWN_EGG(383, 68, 20113, "Guardian Spawn Egg", "Spawn Guardian"),
|
||||
GUNPOWDER(289, 0, 29974, "Gunpowder", "SULPHUR"),
|
||||
HAY_BLOCK(170, 0, 17461, "Hay Bale"),
|
||||
HAY_BLOCK(170, 0, 17461, "Hay Bale", "HAY_BLOCK"),
|
||||
HEART_OF_THE_SEA(11807, "Heart of the Sea"),
|
||||
HEAVY_WEIGHTED_PRESSURE_PLATE(148, 0, 16970, "Heavy Weighted Pressure Plate", "IRON_PLATE"),
|
||||
HOPPER(154, 0, 31974, "Hopper"),
|
||||
@ -402,7 +399,7 @@ public enum CMIMaterial {
|
||||
INK_SAC(351, 0, 7184, "Ink Sac", "Ink Sack"),
|
||||
IRON_AXE(258, 0, 15894, "Iron Axe"),
|
||||
IRON_BARS(101, 0, 9378, Arrays.asList(CMIMaterialCriteria.seeThrow), "Iron Bars", "IRON_FENCE"),
|
||||
IRON_BLOCK(42, 0, 24754, "Block of Iron"),
|
||||
IRON_BLOCK(42, 0, 24754, "Block of Iron", "IRON_BLOCK"),
|
||||
IRON_BOOTS(309, 0, 8531, "Iron Boots"),
|
||||
IRON_CHESTPLATE(307, 0, 28112, "Iron Chestplate"),
|
||||
IRON_DOOR(330, 0, 4788, "Iron Door"),
|
||||
@ -418,7 +415,7 @@ public enum CMIMaterial {
|
||||
IRON_SWORD(267, 0, 10904, "Iron Sword"),
|
||||
IRON_TRAPDOOR(167, 0, 17095, "Iron Trapdoor"),
|
||||
ITEM_FRAME(389, 0, 27318, "Item Frame"),
|
||||
JACK_O_LANTERN(91, 0, 31612, "Jack o'Lantern"),
|
||||
JACK_O_LANTERN(91, 0, 31612, "Jack o'Lantern", "JACK_O_LANTERN"),
|
||||
JUKEBOX(84, 0, 19264, "Jukebox"),
|
||||
JUNGLE_BOAT(446, 0, 4495, "Jungle Boat", "BOAT_JUNGLE"),
|
||||
JUNGLE_BUTTON(25317, "Jungle Button"),
|
||||
@ -438,18 +435,18 @@ public enum CMIMaterial {
|
||||
KELP_PLANT(29697, "Kelp Plant"),
|
||||
KNOWLEDGE_BOOK(453, 0, 12646, "Knowledge Book"),
|
||||
LADDER(65, 0, 23599, "Ladder"),
|
||||
LAPIS_BLOCK(22, 0, 14485, "Lapis Lazuli Block"),
|
||||
LAPIS_BLOCK(22, 0, 14485, "Lapis Lazuli Block", "LAPIS_BLOCK"),
|
||||
LAPIS_LAZULI(351, 4, 11075, "Lapis Lazuli"),
|
||||
LAPIS_ORE(21, 0, 22934, "Lapis Lazuli Ore"),
|
||||
LAPIS_ORE(21, 0, 22934, "Lapis Lazuli Ore", "LAPIS_ORE"),
|
||||
LARGE_FERN(175, 3, 30177, "Large Fern", "DOUBLE_PLANT"),
|
||||
LAVA(10, 0, 8415, "Flowing Lava"),
|
||||
LAVA_BUCKET(327, 0, 9228, "Lava Bucket"),
|
||||
LEAD(420, 0, 29539, "Lead", "Leash"),
|
||||
LEATHER(334, 0, 16414, "Leather"),
|
||||
LEATHER_BOOTS(301, 0, 15282, "Leather Boots"),
|
||||
LEATHER_CHESTPLATE(299, 0, 29275, "Leather Tunic"),
|
||||
LEATHER_HELMET(298, 0, 11624, "Leather Cap"),
|
||||
LEATHER_LEGGINGS(300, 0, 28210, "Leather Pants"),
|
||||
LEATHER_CHESTPLATE(299, 0, 29275, "Leather Tunic", "LEATHER_CHESTPLATE"),
|
||||
LEATHER_HELMET(298, 0, 11624, "Leather Cap", "LEATHER_HELMET"),
|
||||
LEATHER_LEGGINGS(300, 0, 28210, "Leather Pants", "LEATHER_LEGGINGS"),
|
||||
LEVER(69, 0, 15319, "Lever"),
|
||||
LIGHT_BLUE_BANNER(425, 12, 18060, "Light Blue Banner"),
|
||||
LIGHT_BLUE_BED(355, 3, 20957, "Light Blue Bed"),
|
||||
@ -462,7 +459,7 @@ public enum CMIMaterial {
|
||||
LIGHT_BLUE_STAINED_GLASS(95, 3, 17162, Arrays.asList(CMIMaterialCriteria.seeThrow), "Light Blue Stained Glass"),
|
||||
LIGHT_BLUE_STAINED_GLASS_PANE(160, 3, 18721, Arrays.asList(CMIMaterialCriteria.seeThrow), "Light Blue Stained Glass Pane"),
|
||||
LIGHT_BLUE_TERRACOTTA(159, 3, 31779, "Light Blue Terracotta"),
|
||||
LIGHT_BLUE_WALL_BANNER(177, 12, 12011, "Light Blue Banner"),
|
||||
LIGHT_BLUE_WALL_BANNER(117, 12, 12011, "Light Blue Banner"),
|
||||
LIGHT_BLUE_WOOL(35, 3, 21073, "Light Blue Wool"),
|
||||
LIGHT_GRAY_BANNER(425, 7, 11417, "Light Gray Banner"),
|
||||
LIGHT_GRAY_BED(355, 8, 5090, "Light Gray Bed"),
|
||||
@ -475,7 +472,7 @@ public enum CMIMaterial {
|
||||
LIGHT_GRAY_STAINED_GLASS(95, 8, 5843, Arrays.asList(CMIMaterialCriteria.seeThrow), "Light Gray Stained Glass"),
|
||||
LIGHT_GRAY_STAINED_GLASS_PANE(160, 8, 19008, Arrays.asList(CMIMaterialCriteria.seeThrow), "Light Gray Stained Glass Pane"),
|
||||
LIGHT_GRAY_TERRACOTTA(159, 8, 26388, "Light Gray Terracotta"),
|
||||
LIGHT_GRAY_WALL_BANNER(177, 7, 31088, "Light Gray Banner"),
|
||||
LIGHT_GRAY_WALL_BANNER(117, 7, 31088, "Light Gray Banner"),
|
||||
LIGHT_GRAY_WOOL(35, 8, 22936, "Light Gray Wool"),
|
||||
LIGHT_WEIGHTED_PRESSURE_PLATE(147, 0, 14875, "Light Weighted Pressure Plate", "GOLD_PLATE"),
|
||||
LILAC(175, 1, 22837, "Lilac"),
|
||||
@ -491,7 +488,7 @@ public enum CMIMaterial {
|
||||
LIME_STAINED_GLASS(95, 5, 24266, Arrays.asList(CMIMaterialCriteria.seeThrow), "Lime Stained Glass"),
|
||||
LIME_STAINED_GLASS_PANE(160, 5, 10610, Arrays.asList(CMIMaterialCriteria.seeThrow), "Lime Stained Glass Pane"),
|
||||
LIME_TERRACOTTA(159, 5, 24013, "Lime Terracotta"),
|
||||
LIME_WALL_BANNER(177, 10, 21422, "Lime Banner"),
|
||||
LIME_WALL_BANNER(117, 10, 21422, "Lime Banner"),
|
||||
LIME_WOOL(35, 5, 10443, "Lime Wool"),
|
||||
LINGERING_POTION(441, 0, 25857, "Lingering Potion"),
|
||||
LLAMA_SPAWN_EGG(383, 103, 23640, "Llama Spawn Egg", "Spawn Llama"),
|
||||
@ -506,13 +503,13 @@ public enum CMIMaterial {
|
||||
MAGENTA_STAINED_GLASS(95, 2, 26814, Arrays.asList(CMIMaterialCriteria.seeThrow), "Magenta Stained Glass"),
|
||||
MAGENTA_STAINED_GLASS_PANE(160, 2, 14082, Arrays.asList(CMIMaterialCriteria.seeThrow), "Magenta Stained Glass Pane"),
|
||||
MAGENTA_TERRACOTTA(159, 2, 25900, "Magenta Terracotta"),
|
||||
MAGENTA_WALL_BANNER(177, 13, 23291, "Magenta Banner"),
|
||||
MAGENTA_WALL_BANNER(117, 13, 23291, "Magenta Banner"),
|
||||
MAGENTA_WOOL(35, 2, 11853, "Magenta Wool"),
|
||||
MAGMA_BLOCK(213, 0, 25927, "Magma Block", "MAGMA"),
|
||||
MAGMA_CREAM(378, 0, 25097, "Magma Cream"),
|
||||
MAGMA_CUBE_SPAWN_EGG(383, 62, 26638, "Magma Cube Spawn Egg", "Spawn Magma Cube"),
|
||||
MAP(395, 0, 21655, "Empty Map"),
|
||||
MELON(103, 0, 25172, "Melon Block"),
|
||||
MELON(103, 0, 25172, "Melon", "Melon_Block"),
|
||||
MELON_SEEDS(362, 0, 18340, "Melon Seeds"),
|
||||
MELON_SLICE(360, 0, 5347, "Melon Slice"),
|
||||
MELON_STEM(105, 0, 8247, "Melon Stem"),
|
||||
@ -547,12 +544,12 @@ public enum CMIMaterial {
|
||||
NETHER_BRICKS(112, 0, 27802, "Nether Bricks"),
|
||||
NETHER_BRICK_FENCE(113, 0, 5286, Arrays.asList(CMIMaterialCriteria.seeThrow), "Nether Brick Fence", "NETHER_FENCE"),
|
||||
NETHER_BRICK_SLAB(44, 6, 26586, "Nether Brick Slab"),
|
||||
NETHER_BRICK_STAIRS(114, 0, 12085, "Nether Brick Stairs"),
|
||||
NETHER_BRICK_STAIRS(114, 0, 12085, "Nether Brick Stairs", "NETHER_BRICK_STAIRS"),
|
||||
NETHER_PORTAL(90, 0, 19469, "Nether Portal", "PORTAL"),
|
||||
NETHER_QUARTZ_ORE(153, 0, 4807, "Nether Quartz Ore", "QUARTZ_ORE"),
|
||||
NETHER_STAR(399, 0, 12469, "Nether Star"),
|
||||
NETHER_WART(372, 0, 29227, "Nether Wart", "NETHER_STALK"),
|
||||
NETHER_WART_BLOCK(214, 0, 15486, "Nether Wart Block"),
|
||||
NETHER_WART_BLOCK(214, 0, 15486, "Nether Wart Block", "NETHER_WART_BLOCK"),
|
||||
NOTE_BLOCK(25, 0, 20979, "Note Block", "NOTE_BLOCK"),
|
||||
OAK_BOAT(333, 0, 17570, "Boat", "Oak Boat"),
|
||||
OAK_BUTTON(143, 0, 13510, "Oak Button", "Wooden_button"),
|
||||
@ -583,7 +580,7 @@ public enum CMIMaterial {
|
||||
ORANGE_STAINED_GLASS_PANE(160, 1, 21089, Arrays.asList(CMIMaterialCriteria.seeThrow), "Orange Stained Glass Pane"),
|
||||
ORANGE_TERRACOTTA(159, 1, 18684, "Orange Terracotta"),
|
||||
ORANGE_TULIP(38, 5, 26038, "Orange Tulip"),
|
||||
ORANGE_WALL_BANNER(177, 114, 9936, "Orange Banner"),
|
||||
ORANGE_WALL_BANNER(117, 114, 9936, "Orange Banner"),
|
||||
ORANGE_WOOL(35, 1, 23957, "Orange Wool"),
|
||||
OXEYE_DAISY(38, 8, 11709, "Oxeye Daisy"),
|
||||
PACKED_ICE(174, 0, 28993, "Packed Ice"),
|
||||
@ -607,7 +604,7 @@ public enum CMIMaterial {
|
||||
PINK_STAINED_GLASS_PANE(160, 6, 24637, Arrays.asList(CMIMaterialCriteria.seeThrow), "Pink Stained Glass Pane"),
|
||||
PINK_TERRACOTTA(159, 6, 23727, "Pink Terracotta"),
|
||||
PINK_TULIP(38, 7, 27319, "Pink Tulip"),
|
||||
PINK_WALL_BANNER(177, 9, 9421, "Pink Banner"),
|
||||
PINK_WALL_BANNER(117, 9, 9421, "Pink Banner"),
|
||||
PINK_WOOL(35, 6, 7611, "Pink Wool"),
|
||||
PISTON(33, 0, 21130, "Piston", "PISTON_BASE"),
|
||||
PISTON_HEAD(34, 0, 30226, "Piston Head", "PISTON_EXTENSION"),
|
||||
@ -624,7 +621,47 @@ public enum CMIMaterial {
|
||||
PORKCHOP(319, 0, 30896, "Raw Porkchop"),
|
||||
POTATO(392, 0, 21088, "Potato", "Potatoitem"),
|
||||
POTATOES(142, 0, 10879, "Potatoes"),
|
||||
|
||||
// Potions
|
||||
POTION(373, 0, 24020, "Potion"),
|
||||
// AWKWARD_POTION(373, 16, 24020, "Awkard Potion"),
|
||||
// THICK_POTION(373, 32, 24020, "Thick Potion"),
|
||||
// MUNDANE_POTION(373, 64, 24020, "Mundane Potion"),
|
||||
// REGENERATION_POTION(373, 8193, 24020, "Regeneration Potion"),
|
||||
// SWIFTNESS_POTION(373, 8194, 24020, "Swiftness Potion"),
|
||||
// FIRE_RESISTANCE_POTION(373, 8195, 24020, "Fire Resistance Potion"),
|
||||
// POISON_POTION(373, 8196, 24020, "Poison Potion"),
|
||||
// HEALING_POTION(373, 8197, 24020, "Healing Potion"),
|
||||
// NIGHT_VISION_POTION(373, 8198, 24020, "Night Vision Potion"),
|
||||
// WEAKNESS_POTION(373, 8200, 24020, "Weakness Potion"),
|
||||
// STRENGTH_POTION(373, 8201, 24020, "Strenght Potion"),
|
||||
// SLOWNESS_POTION(373, 8202, 24020, "Slowness Potion"),
|
||||
// HARMING_POTION(373, 8204, 24020, "Harming Potion"),
|
||||
// WATER_BREATHING_POTION(373, 8205, 24020, "Water Breathing Potion"),
|
||||
// INVISIBILITY_POTION(373, 8206, 24020, "Invisibility Potion"),
|
||||
// REGENERATION_POTION2(373, 8225, 24020, "Regeneration Potion"),
|
||||
// SWIFTNESS_POTION2(373, 8226, 24020, "Swiftness Potion2"),
|
||||
// POISON_POTION2(373, 8228, 24020, "Poison Potion2"),
|
||||
// HEALING_POTION2(373, 8229, 24020, "Healing Potion2"),
|
||||
// STRENGTH_POTION2(373, 8233, 24020, "Strength Potion2"),
|
||||
// LEAPING_POTION2(373, 8235, 24020, "Leaping Potion2"),
|
||||
// HARMING_POTION2(373, 8236, 24020, "Harming Potion2"),
|
||||
// REGENERATION_POTION3(373, 8257, 24020, "Regeneration Potion3"),
|
||||
// SWIFTNESS_POTION3(373, 8258, 24020, "Swiftness Potion3"),
|
||||
// FIRE_RESISTANCE_POTION3(373, 8259, 24020, "Fire Resistance potion3"),
|
||||
// POISON_POTION3(373, 8260, 24020, "Poison Potion3"),
|
||||
// NIGHT_VISION_POTION2(373, 8262, 24020, "Night Vision Potion2"),
|
||||
// WEAKNESS_POTION2(373, 8264, 24020, "Weakness Potion2"),
|
||||
// STRENGTH_POTION3(373, 8265, 24020, "Strength Potion3"),
|
||||
// SLOWNESS_POTION2(373, 8266, 24020, "Slowness Potion2"),
|
||||
// LEAPING_POTION3(373, 8267, 24020, "Leaping Potion3"),
|
||||
// WATER_BREATHING_POTION2(373, 8269, 24020, "Water Breathing Potion2"),
|
||||
// INVISIBILITY_POTION2(373, 8270, 24020, "Invisibility Potion2"),
|
||||
// REGENERATION_POTION4(373, 8289, 24020, "Regeneration Potion4"),
|
||||
// SWIFTNESS_POTION4(373, 8290, 24020, "Swiftness Potion4"),
|
||||
// POISON_POTION4(373, 8292, 24020, "Poison Potion4"),
|
||||
// STRENGTH_POTION4(373, 8297, 24020, "Strength Potion4"),
|
||||
|
||||
POTTED_ACACIA_SAPLING(14096, " Acacia Sapling"),
|
||||
POTTED_ALLIUM(13184, "Potted Allium"),
|
||||
POTTED_AZURE_BLUET(8754, "Potted Azure Bluet"),
|
||||
@ -673,7 +710,7 @@ public enum CMIMaterial {
|
||||
PURPLE_STAINED_GLASS(95, 10, 21845, Arrays.asList(CMIMaterialCriteria.seeThrow), "Purple Stained Glass"),
|
||||
PURPLE_STAINED_GLASS_PANE(160, 10, 10948, Arrays.asList(CMIMaterialCriteria.seeThrow), "Purple Stained Glass Pane"),
|
||||
PURPLE_TERRACOTTA(159, 10, 10387, "Purple Terracotta"),
|
||||
PURPLE_WALL_BANNER(177, 5, 14298, "Purple Banner"),
|
||||
PURPLE_WALL_BANNER(117, 5, 14298, "Purple Banner"),
|
||||
PURPLE_WOOL(35, 10, 11922, "Purple Wool"),
|
||||
PURPUR_BLOCK(201, 0, 7538, "Purpur Block"),
|
||||
PURPUR_PILLAR(202, 0, 26718, "Purpur Pillar"),
|
||||
@ -691,19 +728,19 @@ public enum CMIMaterial {
|
||||
RABBIT_STEW(413, 0, 10611, "Rabbit Stew"),
|
||||
RAIL(66, 0, 13285, "Rail", "RAILS"),
|
||||
REDSTONE(331, 0, 11233, "Redstone", "Redstone Dust"),
|
||||
REDSTONE_BLOCK(152, 0, 19496, "Block of Redstone"),
|
||||
REDSTONE_BLOCK(152, 0, 19496, "Block of Redstone", "REDSTONE_BLOCK"),
|
||||
REDSTONE_LAMP(123, 0, 8217, "Redstone Lamp", "REDSTONE_LAMP_OFF"),
|
||||
REDSTONE_ORE(73, 0, 10887, "Redstone Ore"),
|
||||
REDSTONE_TORCH(76, 0, 22547, "Redstone Torch(on)", "REDSTONE_TORCH_ON"),
|
||||
REDSTONE_WALL_TORCH(76, 0, 7595, "Redstone Wall Torch"),
|
||||
REDSTONE_WIRE(55, 0, 25984, "Redstone Dust"),
|
||||
REDSTONE_WIRE(55, 0, 25984, "Redstone Dust", "REDSTONE_WIRE"),
|
||||
RED_BANNER(425, 1, 26961, "Red Banner"),
|
||||
RED_BED(355, 14, 30910, "Red Bed", "Red Bed"),
|
||||
RED_CARPET(171, 14, 5424, "Red Carpet"),
|
||||
RED_CONCRETE(251, 14, 8032, "Red Concrete"),
|
||||
RED_CONCRETE_POWDER(252, 14, 13286, "Red Concrete Powder"),
|
||||
RED_GLAZED_TERRACOTTA(249, 0, 24989, "Red Glazed Terracotta"),
|
||||
RED_MUSHROOM(40, 0, 19728, "Red Mushroom"),
|
||||
RED_MUSHROOM(40, 0, 19728, "Red Mushroom", "RED_MUSHROOM"),
|
||||
RED_MUSHROOM_BLOCK(100, 0, 20766, "Red Mushroom Block", "HUGE_MUSHROOM_2"),
|
||||
RED_NETHER_BRICKS(215, 0, 18056, "Red Nether Bricks", "RED_NETHER_BRICK"),
|
||||
RED_SAND(12, 1, 16279, "Red Sand"),
|
||||
@ -715,7 +752,7 @@ public enum CMIMaterial {
|
||||
RED_STAINED_GLASS_PANE(160, 14, 8630, Arrays.asList(CMIMaterialCriteria.seeThrow), "Red Stained Glass Pane"),
|
||||
RED_TERRACOTTA(159, 14, 5086, "Red Terracotta"),
|
||||
RED_TULIP(38, 4, 16781, "Red Tulip"),
|
||||
RED_WALL_BANNER(177, 1, 4378, "Red Banner"),
|
||||
RED_WALL_BANNER(117, 1, 4378, "Red Banner"),
|
||||
RED_WOOL(35, 14, 11621, "Red Wool"),
|
||||
REPEATER(356, 0, 28823, "Redstone Repeater", "Diode"),
|
||||
REPEATING_COMMAND_BLOCK(12405, "Repeating Command Block"),
|
||||
@ -761,7 +798,7 @@ public enum CMIMaterial {
|
||||
SPECTRAL_ARROW(439, 0, 4568, "Spectral Arrow"),
|
||||
SPIDER_EYE(375, 0, 9318, "Spider Eye"),
|
||||
SPIDER_SPAWN_EGG(383, 52, 14984, "Spider Spawn Egg", "Spawn Spider"),
|
||||
SPLASH_POTION(438, 0, 30248, "Splash Potion"),
|
||||
SPLASH_POTION(438, 0, 30248, "Splash Potion", "SPLASH_POTION"),
|
||||
SPONGE(19, 0, 15860, "Sponge", "SPONGE"),
|
||||
SPRUCE_BOAT(444, 0, 9606, "Spruce Boat", "BOAT_SPRUCE"),
|
||||
SPRUCE_BUTTON(23281, "Spruce Button"),
|
||||
@ -815,7 +852,7 @@ public enum CMIMaterial {
|
||||
TALL_SEAGRASS(27189, "Tall Seagrass"),
|
||||
TERRACOTTA(172, 0, 16544, "Terracotta", "HARD_CLAY"),
|
||||
TIPPED_ARROW(440, 0, 25164, "Tipped Arrow"),
|
||||
TNT(46, 0, 7896, "TNT"),
|
||||
TNT(46, 0, 7896, "TNT", "TNT"),
|
||||
TNT_MINECART(407, 0, 4277, "Minecart with TNT", "explosiveminecart"),
|
||||
TORCH(50, 0, 6063, "Torch"),
|
||||
TOTEM_OF_UNDYING(449, 0, 10139, "Totem Of Undying", "Totem"),
|
||||
@ -1113,7 +1150,7 @@ public enum CMIMaterial {
|
||||
LEGACY_BURNING_FURNACE(62, 0, null, "Burning Furnace"),
|
||||
LEGACY_NETHER_WARTS(115, 0, null, "Nether Warts"),
|
||||
LEGACY_IRON_DOOR_BLOCK(71, 0, null, "Iron Door Block"),
|
||||
LEGACY_GLOWING_REDSTONE_ORE(74, 0, null, "Glowing Redstone Ore"),
|
||||
LEGACY_GLOWING_REDSTON_ORE(74, 0, null, "Glowing Redstone Ore"),
|
||||
LEGACY_SUGAR_CANE_BLOCK(83, 0, null, "Sugar Cane Block"),
|
||||
LEGACY_RAW_FISH(349, 0, null, "Raw Fish"),
|
||||
LEGACY_SKULL(144, 0, null, "Skull"),
|
||||
@ -1124,9 +1161,8 @@ public enum CMIMaterial {
|
||||
LEGACY_CAKE_BLOCK(92, 0, null, "Cake Block"),
|
||||
LEGACY_DIODE_BLOCK_OFF(93, 0, null, "Diode Block Off"),
|
||||
LEGACY_DIODE_BLOCK_ON(94, 0, null, "Diode Block On"),
|
||||
LEGACY_BREWING_STAND(117, null, null, "LEGACY_BREWING_STAND"),
|
||||
LEGACY_MELON_BLOCK(103, 0, null, "Melon Block"),
|
||||
|
||||
// LEGACY_BREWING_STAND(117, null, null, "LEGACY_BREWING_STAND", ""),
|
||||
// LEGACY_CAULDRON(118, 0, null, "LEGACY_CAULDRON", ""),
|
||||
// LEGACY_REDSTONE_LAMP_ON(124, null, null, "LEGACY_REDSTONE_LAMP_ON", ""),
|
||||
// LEGACY_WOOD_DOUBLE_STEP(125, null, null, "LEGACY_WOOD_DOUBLE_STEP", ""),
|
||||
@ -1143,10 +1179,12 @@ public enum CMIMaterial {
|
||||
LEGACY_JUNGLE_DOOR(195, 0, null, "Jungle Door Block"),
|
||||
LEGACY_ACACIA_DOOR(196, 0, null, "Acacia Door Block"),
|
||||
LEGACY_DARK_OAK_DOOR(197, 0, null, "Dark Oak Door Block"),
|
||||
LEGACY_GLOWING_REDSTONE_ORE(74, 0, null, "Glowing Redstone Ore"),
|
||||
LEGACY_BREWING_STAND(117, null, null, "LEGACY_BREWING_STAND"),
|
||||
// LEGACY_PURPUR_DOUBLE_SLAB(204, null, null, "LEGACY_PURPUR_DOUBLE_SLAB", ""),
|
||||
// LEGACY_COMMAND_REPEATING(210, null, null, "LEGACY_COMMAND_REPEATING", ""),
|
||||
// LEGACY_COMMAND_CHAIN(211, null, null, "LEGACY_COMMAND_CHAIN", ""),
|
||||
LEGACY_WHEAT(59, 0, null, "Wheat");
|
||||
LEGACY_WHEAT(59, 0, null, "Wheat Block");
|
||||
|
||||
private Integer legacyId;
|
||||
private Integer legacyData;
|
||||
@ -1156,6 +1194,7 @@ public enum CMIMaterial {
|
||||
private String bukkitName;
|
||||
private String mojangName;
|
||||
private Set<CMIMaterialCriteria> criteria;
|
||||
|
||||
Material mat;
|
||||
|
||||
CMIMaterial(Integer id, String name, String... legacyName) {
|
||||
@ -1179,6 +1218,7 @@ public enum CMIMaterial {
|
||||
}
|
||||
|
||||
CMIMaterial(Integer legacyId, Integer legacyData, Integer id, List<CMIMaterialCriteria> criteria, String name, String... legacyName) {
|
||||
|
||||
this.legacyId = legacyId;
|
||||
this.legacyData = legacyData;
|
||||
this.id = id;
|
||||
@ -1196,7 +1236,7 @@ public enum CMIMaterial {
|
||||
|
||||
@Deprecated
|
||||
public Integer getLegacyId() {
|
||||
return legacyId == null ? 0 : legacyId;
|
||||
return this.legacyId == null ? 0 : this.legacyId;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@ -1208,7 +1248,7 @@ public enum CMIMaterial {
|
||||
}
|
||||
|
||||
public Material getMaterial() {
|
||||
return mat;
|
||||
return mat == null ? null : mat;
|
||||
}
|
||||
|
||||
public void updateMaterial() {
|
||||
@ -1258,13 +1298,15 @@ public enum CMIMaterial {
|
||||
if (mat == null) {
|
||||
updateMaterial();
|
||||
}
|
||||
|
||||
if (mat == null) {
|
||||
return new ItemStack(Material.STONE);
|
||||
}
|
||||
|
||||
try {
|
||||
if (!mat.isItem())
|
||||
return new ItemStack(Material.STONE);
|
||||
} catch (Throwable e) {
|
||||
}
|
||||
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_13_R1)) {
|
||||
ItemStack stack = new ItemStack(mat == null ? Material.STONE : mat);
|
||||
@ -1284,17 +1326,16 @@ public enum CMIMaterial {
|
||||
if (mat == null) {
|
||||
updateMaterial();
|
||||
}
|
||||
|
||||
if (mat == null) {
|
||||
return new CMIItemStack(CMIMaterial.STONE);
|
||||
}
|
||||
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_13_R1)) {
|
||||
CMIItemStack stack = new CMIItemStack(mat == null ? Material.STONE : mat);
|
||||
stack.setAmount(amount);
|
||||
return stack;
|
||||
}
|
||||
ItemStack stack = new ItemStack(mat == null ? Material.STONE : mat, 1, (short) this.getLegacyData());
|
||||
|
||||
stack.setAmount(amount);
|
||||
return new CMIItemStack(stack);
|
||||
}
|
||||
@ -1313,10 +1354,13 @@ public enum CMIMaterial {
|
||||
}
|
||||
|
||||
public static CMIMaterial getRandom(CMIMaterial mat) {
|
||||
List<CMIMaterial> ls = new ArrayList<>();
|
||||
|
||||
List<CMIMaterial> ls = new ArrayList<CMIMaterial>();
|
||||
|
||||
for (CMIMaterial one : CMIMaterial.values()) {
|
||||
if (one.getLegacyId() == null || !one.getLegacyId().equals(mat.getLegacyId()))
|
||||
if (one.getLegacyId() == null)
|
||||
continue;
|
||||
if (one.getLegacyId() != mat.getLegacyId())
|
||||
continue;
|
||||
ls.add(one);
|
||||
}
|
||||
@ -1345,7 +1389,9 @@ public enum CMIMaterial {
|
||||
if (mat == null)
|
||||
return CMIMaterial.NONE;
|
||||
for (CMIMaterial one : CMIMaterial.values()) {
|
||||
if (one.getLegacyId() == null || !one.getLegacyId().equals(mat.getLegacyId()))
|
||||
if (one.getLegacyId() == null)
|
||||
continue;
|
||||
if (one.getLegacyId() != mat.getLegacyId())
|
||||
continue;
|
||||
if (one.getLegacyData() == id)
|
||||
return one;
|
||||
@ -1355,19 +1401,21 @@ public enum CMIMaterial {
|
||||
}
|
||||
|
||||
public static CMIMaterial get(String id) {
|
||||
|
||||
if (id == null)
|
||||
return CMIMaterial.NONE;
|
||||
Integer data;
|
||||
id = id.replaceAll("_| |minecraft:", "").toLowerCase();
|
||||
Integer ids = null;
|
||||
Integer data = null;
|
||||
id = id.replace("_", "").replace(" ", "").replace("minecraft:", "").toLowerCase();
|
||||
|
||||
if (id.contains(":")) {
|
||||
try {
|
||||
Integer ids = Integer.parseInt(id.split(":")[0]);
|
||||
ids = Integer.parseInt(id.split(":")[0]);
|
||||
data = Integer.parseInt(id.split(":")[1]);
|
||||
if (ids <= 0)
|
||||
return CMIMaterial.NONE;
|
||||
return get(ids, data);
|
||||
} catch (Exception ignored) {
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
|
||||
try {
|
||||
@ -1384,19 +1432,12 @@ public enum CMIMaterial {
|
||||
return mat;
|
||||
}
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
if (id.contains(":")) {
|
||||
String metaTag = id.split(":")[1];
|
||||
CMIMaterial mat = ItemManager.byName.get(id + ":" + metaTag);
|
||||
if (mat != null) {
|
||||
return mat;
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
}
|
||||
|
||||
CMIMaterial mat = ItemManager.byName.get(id);
|
||||
|
||||
if (mat != null) {
|
||||
return mat;
|
||||
}
|
||||
@ -1406,7 +1447,7 @@ public enum CMIMaterial {
|
||||
if (mat != null) {
|
||||
return mat;
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
|
||||
return CMIMaterial.NONE;
|
||||
@ -1442,8 +1483,7 @@ public enum CMIMaterial {
|
||||
return CMIMaterial.NONE;
|
||||
CMIMaterial mat = null;
|
||||
if (Version.isCurrentEqualOrLower(Version.v1_13_R2)) {
|
||||
mat = Version.isCurrentEqualOrHigher(Version.v1_13_R1) ? get(item.getType().getId())
|
||||
: get(item.getType().getId(), item.getData().getData());
|
||||
mat = Version.isCurrentEqualOrHigher(Version.v1_13_R1) ? get(item.getType().getId()) : get(item.getType().getId(), item.getData().getData());
|
||||
if (mat == null) {
|
||||
mat = ItemManager.byName.get(item.getType().toString().toLowerCase().replace("_", ""));
|
||||
}
|
||||
@ -1469,7 +1509,7 @@ public enum CMIMaterial {
|
||||
return ItemManager.byRealMaterial.get(block.getType());
|
||||
}
|
||||
|
||||
byte data = Version.isCurrentEqualOrLower(Version.v1_13_R1) ? getBlockData(block) : 0;
|
||||
byte data = Version.isCurrentEqualOrLower(Version.v1_13_R1) ? block.getData() : 0;
|
||||
if (block.getState() instanceof Skull) {
|
||||
Skull skull = (Skull) block.getState();
|
||||
data = (byte) skull.getSkullType().ordinal();
|
||||
@ -1481,7 +1521,9 @@ public enum CMIMaterial {
|
||||
mat = ItemManager.byRealMaterial.get(block.getType());
|
||||
}
|
||||
|
||||
if (mat == null) {
|
||||
mat = ItemManager.byName.get(block.getType().toString().replace("_", "").toLowerCase());
|
||||
}
|
||||
|
||||
if (mat == null && Version.isCurrentEqualOrLower(Version.v1_13_R2)) {
|
||||
mat = get(block.getType().getId(), Version.isCurrentEqualOrHigher(Version.v1_13_R1) ? 0 : data);
|
||||
@ -1494,7 +1536,6 @@ public enum CMIMaterial {
|
||||
if (mat != null) {
|
||||
return mat;
|
||||
}
|
||||
|
||||
mat = ItemManager.byId.get(id);
|
||||
return mat == null ? CMIMaterial.NONE : mat;
|
||||
}
|
||||
@ -1503,7 +1544,6 @@ public enum CMIMaterial {
|
||||
CMIMaterial mat = ItemManager.byId.get(id);
|
||||
if (mat != null)
|
||||
return mat;
|
||||
|
||||
return CMIMaterial.NONE;
|
||||
}
|
||||
|
||||
@ -1598,7 +1638,6 @@ public enum CMIMaterial {
|
||||
// 1.15
|
||||
case BEE_SPAWN_EGG:
|
||||
|
||||
// 1.16
|
||||
case HOGLIN_SPAWN_EGG:
|
||||
case PIGLIN_SPAWN_EGG:
|
||||
case STRIDER_SPAWN_EGG:
|
||||
@ -1710,6 +1749,44 @@ public enum CMIMaterial {
|
||||
case POTION:
|
||||
case LINGERING_POTION:
|
||||
case SPLASH_POTION:
|
||||
|
||||
// case AWKWARD_POTION:
|
||||
// case THICK_POTION:
|
||||
// case MUNDANE_POTION:
|
||||
// case REGENERATION_POTION:
|
||||
// case SWIFTNESS_POTION:
|
||||
// case FIRE_RESISTANCE_POTION:
|
||||
// case POISON_POTION:
|
||||
// case HEALING_POTION:
|
||||
// case NIGHT_VISION_POTION:
|
||||
// case WEAKNESS_POTION:
|
||||
// case STRENGTH_POTION:
|
||||
// case SLOWNESS_POTION:
|
||||
// case HARMING_POTION:
|
||||
// case WATER_BREATHING_POTION:
|
||||
// case INVISIBILITY_POTION:
|
||||
// case REGENERATION_POTION2:
|
||||
// case SWIFTNESS_POTION2:
|
||||
// case POISON_POTION2:
|
||||
// case HEALING_POTION2:
|
||||
// case STRENGTH_POTION2:
|
||||
// case LEAPING_POTION2:
|
||||
// case HARMING_POTION2:
|
||||
// case REGENERATION_POTION3:
|
||||
// case SWIFTNESS_POTION3:
|
||||
// case FIRE_RESISTANCE_POTION3:
|
||||
// case POISON_POTION3:
|
||||
// case NIGHT_VISION_POTION2:
|
||||
// case WEAKNESS_POTION2:
|
||||
// case STRENGTH_POTION3:
|
||||
// case SLOWNESS_POTION2:
|
||||
// case LEAPING_POTION3:
|
||||
// case WATER_BREATHING_POTION2:
|
||||
// case INVISIBILITY_POTION2:
|
||||
// case REGENERATION_POTION4:
|
||||
// case SWIFTNESS_POTION4:
|
||||
// case POISON_POTION4:
|
||||
// case STRENGTH_POTION4:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
@ -1717,10 +1794,6 @@ public enum CMIMaterial {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isCanHavePotionType() {
|
||||
return isPotion() || this == CMIMaterial.TIPPED_ARROW;
|
||||
}
|
||||
|
||||
public static boolean isBoat(Material mat) {
|
||||
CMIMaterial m = CMIMaterial.get(mat);
|
||||
if (m == null)
|
||||
@ -1986,24 +2059,28 @@ public enum CMIMaterial {
|
||||
case GOLDEN_HELMET:
|
||||
case IRON_HELMET:
|
||||
case LEATHER_HELMET:
|
||||
|
||||
case NETHERITE_CHESTPLATE:
|
||||
case CHAINMAIL_CHESTPLATE:
|
||||
case DIAMOND_CHESTPLATE:
|
||||
case GOLDEN_CHESTPLATE:
|
||||
case IRON_CHESTPLATE:
|
||||
case LEATHER_CHESTPLATE:
|
||||
|
||||
case NETHERITE_LEGGINGS:
|
||||
case CHAINMAIL_LEGGINGS:
|
||||
case DIAMOND_LEGGINGS:
|
||||
case GOLDEN_LEGGINGS:
|
||||
case IRON_LEGGINGS:
|
||||
case LEATHER_LEGGINGS:
|
||||
|
||||
case NETHERITE_BOOTS:
|
||||
case CHAINMAIL_BOOTS:
|
||||
case DIAMOND_BOOTS:
|
||||
case GOLDEN_BOOTS:
|
||||
case IRON_BOOTS:
|
||||
case LEATHER_BOOTS:
|
||||
|
||||
case SHIELD:
|
||||
case TURTLE_HELMET:
|
||||
return true;
|
||||
@ -2053,24 +2130,28 @@ public enum CMIMaterial {
|
||||
case IRON_PICKAXE:
|
||||
case STONE_PICKAXE:
|
||||
case WOODEN_PICKAXE:
|
||||
|
||||
case NETHERITE_SHOVEL:
|
||||
case DIAMOND_SHOVEL:
|
||||
case GOLDEN_SHOVEL:
|
||||
case IRON_SHOVEL:
|
||||
case STONE_SHOVEL:
|
||||
case WOODEN_SHOVEL:
|
||||
|
||||
case NETHERITE_AXE:
|
||||
case DIAMOND_AXE:
|
||||
case GOLDEN_AXE:
|
||||
case IRON_AXE:
|
||||
case STONE_AXE:
|
||||
case WOODEN_AXE:
|
||||
|
||||
case NETHERITE_HOE:
|
||||
case DIAMOND_HOE:
|
||||
case GOLDEN_HOE:
|
||||
case IRON_HOE:
|
||||
case STONE_HOE:
|
||||
case WOODEN_HOE:
|
||||
|
||||
case SHEARS:
|
||||
case FISHING_ROD:
|
||||
return true;
|
||||
@ -2196,6 +2277,7 @@ public enum CMIMaterial {
|
||||
case SPRUCE_DOOR:
|
||||
case CRIMSON_DOOR:
|
||||
case WARPED_DOOR:
|
||||
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
@ -2244,6 +2326,7 @@ public enum CMIMaterial {
|
||||
case NETHER_BRICK_FENCE:
|
||||
case OAK_FENCE:
|
||||
case SPRUCE_FENCE:
|
||||
|
||||
case CRIMSON_FENCE:
|
||||
case WARPED_FENCE:
|
||||
return true;
|
||||
@ -2306,6 +2389,29 @@ public enum CMIMaterial {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isWallSign(Material mat) {
|
||||
CMIMaterial m = get(mat);
|
||||
if (m == null)
|
||||
return false;
|
||||
return m.isWallSign();
|
||||
}
|
||||
|
||||
public boolean isWallSign() {
|
||||
switch (this) {
|
||||
case WALL_SIGN:
|
||||
case ACACIA_WALL_SIGN:
|
||||
case BIRCH_WALL_SIGN:
|
||||
case DARK_OAK_WALL_SIGN:
|
||||
case JUNGLE_WALL_SIGN:
|
||||
case OAK_WALL_SIGN:
|
||||
case SPRUCE_WALL_SIGN:
|
||||
case CRIMSON_WALL_SIGN:
|
||||
case WARPED_WALL_SIGN:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isSign(Material mat) {
|
||||
CMIMaterial m = CMIMaterial.get(mat);
|
||||
if (m == null)
|
||||
@ -2318,46 +2424,31 @@ public enum CMIMaterial {
|
||||
case SIGN:
|
||||
case WALL_SIGN:
|
||||
case LEGACY_SIGN_POST:
|
||||
|
||||
case ACACIA_SIGN:
|
||||
case ACACIA_WALL_SIGN:
|
||||
|
||||
case BIRCH_SIGN:
|
||||
case BIRCH_WALL_SIGN:
|
||||
|
||||
case DARK_OAK_SIGN:
|
||||
case DARK_OAK_WALL_SIGN:
|
||||
|
||||
case JUNGLE_SIGN:
|
||||
case JUNGLE_WALL_SIGN:
|
||||
|
||||
case OAK_SIGN:
|
||||
case OAK_WALL_SIGN:
|
||||
|
||||
case SPRUCE_SIGN:
|
||||
case SPRUCE_WALL_SIGN:
|
||||
|
||||
case CRIMSON_SIGN:
|
||||
case CRIMSON_WALL_SIGN:
|
||||
|
||||
case WARPED_SIGN:
|
||||
case WARPED_WALL_SIGN:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isWallSign(Material mat) {
|
||||
CMIMaterial m = CMIMaterial.get(mat);
|
||||
if (m == null)
|
||||
return false;
|
||||
return m.isWallSign();
|
||||
}
|
||||
|
||||
public boolean isWallSign() {
|
||||
switch (this) {
|
||||
case WALL_SIGN:
|
||||
|
||||
case ACACIA_WALL_SIGN:
|
||||
case BIRCH_WALL_SIGN:
|
||||
case DARK_OAK_WALL_SIGN:
|
||||
case JUNGLE_WALL_SIGN:
|
||||
case OAK_WALL_SIGN:
|
||||
case SPRUCE_WALL_SIGN:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
@ -2540,6 +2631,7 @@ public enum CMIMaterial {
|
||||
case SMOOTH_RED_SANDSTONE_SLAB:
|
||||
case SMOOTH_SANDSTONE_SLAB:
|
||||
case SMOOTH_STONE_SLAB:
|
||||
|
||||
case BLACKSTONE_SLAB:
|
||||
case CRIMSON_SLAB:
|
||||
case POLISHED_BLACKSTONE_BRICK_SLAB:
|
||||
@ -2552,6 +2644,95 @@ public enum CMIMaterial {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static CMISlabType getSlabType(Block block) {
|
||||
if (!isSlab(block.getType()))
|
||||
return CMISlabType.NOTSLAB;
|
||||
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_13_R1)) {
|
||||
if (block.getBlockData() instanceof org.bukkit.block.data.type.Slab) {
|
||||
org.bukkit.block.data.type.Slab slab = (org.bukkit.block.data.type.Slab) block.getBlockData();
|
||||
switch (slab.getType()) {
|
||||
case TOP:
|
||||
return CMISlabType.TOP;
|
||||
case BOTTOM:
|
||||
return CMISlabType.BOTTOM;
|
||||
case DOUBLE:
|
||||
return CMISlabType.DOUBLE;
|
||||
}
|
||||
|
||||
}
|
||||
return CMISlabType.NOTSLAB;
|
||||
}
|
||||
if (block.getType().name().contains("STEP")) {
|
||||
switch (CMIMaterial.get(block).getLegacyId()) {
|
||||
case 44:
|
||||
switch (block.getData()) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
return CMISlabType.BOTTOM;
|
||||
default:
|
||||
return CMISlabType.DOUBLE;
|
||||
}
|
||||
case 126:
|
||||
switch (block.getData()) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
return CMISlabType.BOTTOM;
|
||||
default:
|
||||
return CMISlabType.DOUBLE;
|
||||
}
|
||||
case 182:
|
||||
switch (block.getData()) {
|
||||
case 0:
|
||||
return CMISlabType.BOTTOM;
|
||||
default:
|
||||
return CMISlabType.DOUBLE;
|
||||
}
|
||||
case 205:
|
||||
switch (block.getData()) {
|
||||
case 0:
|
||||
return CMISlabType.BOTTOM;
|
||||
default:
|
||||
return CMISlabType.DOUBLE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return CMISlabType.NOTSLAB;
|
||||
}
|
||||
|
||||
public boolean isCanHavePotionType() {
|
||||
return isPotion() || this == CMIMaterial.TIPPED_ARROW;
|
||||
}
|
||||
|
||||
public static String getGeneralMaterialName(String fullName) {
|
||||
String newName = fullName.toUpperCase();
|
||||
if (newName.startsWith("STRIPPED")) {
|
||||
return newName.replaceFirst("_[^_]+", "");
|
||||
}
|
||||
|
||||
if (newName.matches("^(DARK|LIGHT).+")) {
|
||||
return newName.replaceFirst(".+?_.+?_", "");
|
||||
}
|
||||
|
||||
if (newName.matches("^(WHITE|ORANGE|MAGENTA|YELLOW|LIME|PINK|GRAY|CYAN|PURPLE|BLUE|BROWN|GREEN|RED|BLACK|" +
|
||||
"OAK|SPRUCE|BIRCH|JUNGLE|ACACIA).+")) {
|
||||
return newName.replaceFirst(".+?_", "");
|
||||
}
|
||||
|
||||
return fullName;
|
||||
}
|
||||
|
||||
public static byte getBlockData(Block block) {
|
||||
@SuppressWarnings("deprecation")
|
||||
byte data = block.getData();
|
||||
@ -2581,88 +2762,22 @@ public enum CMIMaterial {
|
||||
return data;
|
||||
}
|
||||
|
||||
public static SlabType getSlabType(Block block) {
|
||||
if (!isSlab(block.getType()))
|
||||
return SlabType.NOTSLAB;
|
||||
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_13_R1)) {
|
||||
if (block.getBlockData() instanceof org.bukkit.block.data.type.Slab) {
|
||||
// This needs to be in String format for backwards compatibility
|
||||
String slab = ((org.bukkit.block.data.type.Slab) block.getBlockData()).getType().toString();
|
||||
switch (slab) {
|
||||
case "TOP":
|
||||
return SlabType.TOP;
|
||||
case "BOTTOM":
|
||||
return SlabType.BOTTOM;
|
||||
case "DOUBLE":
|
||||
return SlabType.DOUBLE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return SlabType.NOTSLAB;
|
||||
}
|
||||
if (block.getType().name().contains("STEP")) {
|
||||
switch (CMIMaterial.get(block).getLegacyId()) {
|
||||
case 44:
|
||||
switch (block.getData()) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
return SlabType.BOTTOM;
|
||||
default:
|
||||
return SlabType.DOUBLE;
|
||||
}
|
||||
case 126:
|
||||
switch (block.getData()) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
return SlabType.BOTTOM;
|
||||
default:
|
||||
return SlabType.DOUBLE;
|
||||
}
|
||||
case 182:
|
||||
switch (block.getData()) {
|
||||
case 0:
|
||||
return SlabType.BOTTOM;
|
||||
default:
|
||||
return SlabType.DOUBLE;
|
||||
}
|
||||
case 205:
|
||||
switch (block.getData()) {
|
||||
case 0:
|
||||
return SlabType.BOTTOM;
|
||||
default:
|
||||
return SlabType.DOUBLE;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return SlabType.NOTSLAB;
|
||||
}
|
||||
|
||||
public boolean equals(Material mat) {
|
||||
return getMaterial() == null ? false : getMaterial().equals(mat);
|
||||
if (getMaterial() == null) {
|
||||
return false;
|
||||
}
|
||||
return this.getMaterial().equals(mat);
|
||||
}
|
||||
|
||||
public List<String> getLegacyNames() {
|
||||
return legacyName == null ? new ArrayList<>() : legacyName;
|
||||
if (legacyName == null)
|
||||
return new ArrayList<String>();
|
||||
return legacyName;
|
||||
}
|
||||
|
||||
public void addLegacyName(String legacyName) {
|
||||
if (legacyName == null)
|
||||
this.legacyName = new ArrayList<>();
|
||||
this.legacyName = new ArrayList<String>();
|
||||
this.legacyName.add(legacyName);
|
||||
}
|
||||
|
||||
@ -2678,7 +2793,7 @@ public enum CMIMaterial {
|
||||
|
||||
public String getMojangName() {
|
||||
if (mojangName == null)
|
||||
mojangName = ItemReflection.getItemMinecraftName(newItemStack());
|
||||
mojangName = CMIReflections.getItemMinecraftName(this.newItemStack());
|
||||
return mojangName;
|
||||
}
|
||||
|
||||
@ -2691,24 +2806,8 @@ public enum CMIMaterial {
|
||||
}
|
||||
|
||||
public boolean containsCriteria(CMIMaterialCriteria criteria) {
|
||||
return this.criteria == null || criteria == null ? false : this.criteria.contains(criteria);
|
||||
}
|
||||
|
||||
public static String getGeneralMaterialName(String fullName) {
|
||||
String newName = fullName.toUpperCase();
|
||||
if (newName.startsWith("STRIPPED")) {
|
||||
return newName.replaceFirst("_[^_]+", "");
|
||||
}
|
||||
|
||||
if (newName.matches("^(DARK|LIGHT).+")) {
|
||||
return newName.replaceFirst(".+?_.+?_", "");
|
||||
}
|
||||
|
||||
if (newName.matches("^(WHITE|ORANGE|MAGENTA|YELLOW|LIME|PINK|GRAY|CYAN|PURPLE|BLUE|BROWN|GREEN|RED|BLACK|" +
|
||||
"OAK|SPRUCE|BIRCH|JUNGLE|ACACIA).+")) {
|
||||
return newName.replaceFirst(".+?_", "");
|
||||
}
|
||||
|
||||
return fullName;
|
||||
if (this.criteria == null || criteria == null)
|
||||
return false;
|
||||
return this.criteria.contains(criteria);
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,6 @@ package com.gamingmesh.jobs.CMILib;
|
||||
|
||||
public enum CMIMaterialCriteria {
|
||||
|
||||
seeThrow, stars, slab, door, carpet, wool, monsteregg;
|
||||
seeThrow, stars, slab, door, carpet, wool, monsteregg
|
||||
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
package com.gamingmesh.jobs.CMILib;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
@ -11,7 +12,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
|
||||
public class Reflections {
|
||||
public class CMIReflections {
|
||||
|
||||
private Class<?> CraftServerClass;
|
||||
private Object CraftServer;
|
||||
@ -21,10 +22,10 @@ public class Reflections {
|
||||
// private Class<?> NBTTagList;
|
||||
|
||||
private static Class<?> CraftItemStack;
|
||||
// private Class<?> Item;
|
||||
private static Class<?> Item;
|
||||
private static Class<?> IStack;
|
||||
|
||||
public Reflections() {
|
||||
public CMIReflections() {
|
||||
initialize();
|
||||
}
|
||||
|
||||
@ -40,11 +41,11 @@ public class Reflections {
|
||||
e.printStackTrace();
|
||||
}*/
|
||||
CraftItemStack = getBukkitClass("inventory.CraftItemStack");
|
||||
/*try {
|
||||
try {
|
||||
Item = getMinecraftClass("Item");
|
||||
} catch (ClassNotFoundException | SecurityException | IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
}*/
|
||||
}
|
||||
IStack = getMinecraftClass("ItemStack");
|
||||
} catch (ClassCastException | ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
@ -281,7 +282,49 @@ public class Reflections {
|
||||
}
|
||||
}
|
||||
|
||||
public Object getCraftServer() {
|
||||
return CraftServer;
|
||||
public static String getItemMinecraftName(ItemStack item) {
|
||||
try {
|
||||
|
||||
Object nmsStack = asNMSCopy(item);
|
||||
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_13_R1)) {
|
||||
Object pre = nmsStack.getClass().getMethod("getItem").invoke(nmsStack);
|
||||
Object n = pre.getClass().getMethod("getName").invoke(pre);
|
||||
Class<?> ll = Class.forName("net.minecraft.server." + Version.getCurrent() + ".LocaleLanguage");
|
||||
Object lla = ll.getMethod("a").invoke(ll);
|
||||
return (String) lla.getClass().getMethod("a", String.class).invoke(lla, (String) n);
|
||||
}
|
||||
|
||||
Field field = Item.getField("REGISTRY");
|
||||
Object reg = field.get(field);
|
||||
Method meth = reg.getClass().getMethod("b", Object.class);
|
||||
meth.setAccessible(true);
|
||||
Method secmeth = nmsStack.getClass().getMethod("getItem");
|
||||
Object res2 = secmeth.invoke(nmsStack);
|
||||
Object res = meth.invoke(reg, res2);
|
||||
return res.toString();
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public String getItemMinecraftNamePath(ItemStack item) {
|
||||
try {
|
||||
Object nmsStack = asNMSCopy(item);
|
||||
Method itemMeth = Item.getMethod("getById", int.class);
|
||||
@SuppressWarnings("deprecation")
|
||||
Object res = itemMeth.invoke(Item, item.getType().getId());
|
||||
Method nameThingy = Item.getMethod("j", IStack);
|
||||
Object resThingy = nameThingy.invoke(res, nmsStack);
|
||||
return resThingy.toString();
|
||||
} catch (Throwable e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static ItemStack getItemInOffHand(org.bukkit.entity.Player player) {
|
||||
if (Jobs.getVersionCheckManager().getVersion().isLower(Version.v1_9_R1))
|
||||
return null;
|
||||
return player.getInventory().getItemInOffHand();
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.gamingmesh.jobs.CMILib;
|
||||
|
||||
public enum CMISlabType {
|
||||
TOP,
|
||||
BOTTOM,
|
||||
DOUBLE,
|
||||
NOTSLAB;
|
||||
}
|
@ -15,7 +15,7 @@ import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.potion.PotionType;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import com.gamingmesh.jobs.CMILib.Version;
|
||||
import com.gamingmesh.jobs.container.Potion;
|
||||
import com.gamingmesh.jobs.stuff.Util;
|
||||
|
||||
@ -52,7 +52,7 @@ public class ItemManager {
|
||||
String mojangName = null;
|
||||
try {
|
||||
if (Version.isCurrentEqualOrLower(Version.v1_14_R1) || mat.isItem())
|
||||
mojangName = ItemReflection.getItemMinecraftName(new ItemStack(mat));
|
||||
mojangName = CMIReflections.getItemMinecraftName(new ItemStack(mat));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -63,8 +63,7 @@ public class ItemManager {
|
||||
for (Potion p : Potion.values()) {
|
||||
byName.put(cmiName + ":" + p.getName().toLowerCase(), one);
|
||||
}
|
||||
}
|
||||
else if (byName.containsKey(cmiName)) {
|
||||
} else if (byName.containsKey(cmiName)) {
|
||||
byName.put(cmiName + ":" + data, one);
|
||||
} else
|
||||
byName.put(cmiName, one);
|
||||
|
@ -15,8 +15,8 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class RawMessage {
|
||||
|
||||
List<String> parts = new ArrayList<>();
|
||||
List<String> cleanParts = new ArrayList<>();
|
||||
List<String> parts = new ArrayList<String>();
|
||||
List<String> cleanParts = new ArrayList<String>();
|
||||
|
||||
private String unfinished = "";
|
||||
private String unfinishedClean = "";
|
||||
@ -29,8 +29,8 @@ public class RawMessage {
|
||||
// private boolean colorizeEntireWithLast = true;
|
||||
|
||||
public void clear() {
|
||||
parts = new ArrayList<>();
|
||||
cleanParts = new ArrayList<>();
|
||||
parts = new ArrayList<String>();
|
||||
cleanParts = new ArrayList<String>();
|
||||
combined = "";
|
||||
combinedClean = "";
|
||||
}
|
||||
@ -63,17 +63,19 @@ public class RawMessage {
|
||||
return add(text, hoverText, command, suggestion, null);
|
||||
}
|
||||
|
||||
Set<CMIChatColor> formats = new HashSet<>();
|
||||
Set<CMIChatColor> formats = new HashSet<CMIChatColor>();
|
||||
CMIChatColor lastColor = null;
|
||||
|
||||
Set<CMIChatColor> savedFormats = new HashSet<>();
|
||||
Set<CMIChatColor> savedFormats = new HashSet<CMIChatColor>();
|
||||
CMIChatColor savedLastColor = null;
|
||||
|
||||
CMIChatColor firstBlockColor = null;
|
||||
|
||||
private String intoJsonColored(String text) {
|
||||
if (text.equalsIgnoreCase(" "))
|
||||
if (text.equalsIgnoreCase(" ")) {
|
||||
text = "{\"text\":\" \"}";
|
||||
return text;
|
||||
}
|
||||
|
||||
text = CMIChatColor.deColorize(text);
|
||||
|
||||
@ -89,7 +91,7 @@ public class RawMessage {
|
||||
text = text.replaceAll(decolmatch.group(), string);
|
||||
}
|
||||
|
||||
List<String> splited = new ArrayList<>();
|
||||
List<String> splited = new ArrayList<String>();
|
||||
if (text.contains(" ")) {
|
||||
for (String one : text.split(" ")) {
|
||||
// if (this.isBreakLine() && one.contains("\\n")) {
|
||||
@ -118,7 +120,7 @@ public class RawMessage {
|
||||
|
||||
Pattern prepattern = Pattern.compile(CMIChatColor.hexColorRegex);
|
||||
|
||||
List<String> plt = new ArrayList<>(splited);
|
||||
List<String> plt = new ArrayList<String>(splited);
|
||||
splited.clear();
|
||||
for (String one : plt) {
|
||||
Matcher match = prepattern.matcher(one);
|
||||
@ -232,10 +234,10 @@ public class RawMessage {
|
||||
}
|
||||
one = one.replace(c.getColorCode(), c.getColorCode() + form);
|
||||
} else if (c.getHex() != null) {
|
||||
//String form = "";
|
||||
//for (CMIChatColor oneC : formats) {
|
||||
//form += oneC.getColorCode();
|
||||
//}
|
||||
String form = "";
|
||||
for (CMIChatColor oneC : formats) {
|
||||
form += oneC.getColorCode();
|
||||
}
|
||||
|
||||
// CMIDebug.d("*"+net.md_5.bungee.api.ChatColor.of("#" + c.getHex())+ "_"+net.md_5.bungee.api.ChatColor.of("#FF00FF")+ "+");
|
||||
|
||||
@ -412,7 +414,6 @@ public class RawMessage {
|
||||
return this;
|
||||
|
||||
text = processText(text);
|
||||
|
||||
if (dontBreakLine) {
|
||||
text = text.replace("\n", "\\\\n");
|
||||
text = text.replace("\\n", "\\\\n");
|
||||
@ -545,7 +546,7 @@ public class RawMessage {
|
||||
f += ",\"insertion\":\"" + insertion + "\"";
|
||||
}
|
||||
|
||||
String res = Reflections.toJson(item);
|
||||
String res = CMIReflections.toJson(item);
|
||||
|
||||
f += ",\"hoverEvent\":{\"action\":\"show_item\",\"value\":\"" + res + "\"}";
|
||||
|
||||
@ -566,7 +567,7 @@ public class RawMessage {
|
||||
}
|
||||
|
||||
public List<String> softCombine() {
|
||||
List<String> ls = new ArrayList<>();
|
||||
List<String> ls = new ArrayList<String>();
|
||||
String f = "";
|
||||
for (String part : parts) {
|
||||
if (f.isEmpty())
|
||||
|
@ -8,9 +8,6 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
|
||||
public class RawMessageManager {
|
||||
|
||||
private static Object packet;
|
||||
@ -43,8 +40,8 @@ public class RawMessageManager {
|
||||
sub = consts[2].getClass();
|
||||
}
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException | NoSuchFieldException ex) {
|
||||
Jobs.consoleMsg("Error {0} ");
|
||||
Jobs.consoleMsg(ex.toString());
|
||||
Bukkit.getConsoleSender().sendMessage("Error {0} ");
|
||||
Bukkit.getConsoleSender().sendMessage(ex.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,7 +76,7 @@ public class RawMessageManager {
|
||||
sendPacket.invoke(connection, packet);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
Jobs.consoleMsg("Failed to show json message with packets, using command approach");
|
||||
Bukkit.getConsoleSender().sendMessage("Failed to show json message with packets, using command approach");
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "minecraft:tellraw \"" + receivingPacket.getName() + "\" " + json);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,136 @@
|
||||
package com.gamingmesh.jobs.CMILib;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
|
||||
public class TitleMessageManager {
|
||||
private static Method getHandle;
|
||||
private static Method sendPacket;
|
||||
private static Field playerConnection;
|
||||
private static Class<?> nmsIChatBaseComponent;
|
||||
|
||||
private static Constructor<?> nmsPacketPlayOutTitle;
|
||||
private static Constructor<?> nmsPacketPlayOutTimes;
|
||||
private static Class<?> enumTitleAction;
|
||||
private static Method fromString;
|
||||
private static boolean simpleTitleMessages = false;
|
||||
|
||||
static {
|
||||
if (Version.isCurrentHigher(Version.v1_7_R4)) {
|
||||
Version version = Version.getCurrent();
|
||||
try {
|
||||
Class<?> typeCraftPlayer = Class.forName("org.bukkit.craftbukkit." + version + ".entity.CraftPlayer");
|
||||
Class<?> typeNMSPlayer = Class.forName("net.minecraft.server." + version + ".EntityPlayer");
|
||||
Class<?> typePlayerConnection = Class.forName("net.minecraft.server." + version + ".PlayerConnection");
|
||||
nmsIChatBaseComponent = Class.forName("net.minecraft.server." + version + ".IChatBaseComponent");
|
||||
getHandle = typeCraftPlayer.getMethod("getHandle");
|
||||
playerConnection = typeNMSPlayer.getField("playerConnection");
|
||||
sendPacket = typePlayerConnection.getMethod("sendPacket", Class.forName("net.minecraft.server." + version + ".Packet"));
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException | NoSuchFieldException ex) {
|
||||
Bukkit.getLogger().log(Level.SEVERE, "Error {0}", ex);
|
||||
}
|
||||
|
||||
// Title
|
||||
try {
|
||||
Class<?> typePacketPlayOutTitle = Class.forName(getPacketPlayOutTitleClasspath());
|
||||
enumTitleAction = Class.forName(getEnumTitleActionClasspath());
|
||||
nmsPacketPlayOutTitle = typePacketPlayOutTitle.getConstructor(enumTitleAction, nmsIChatBaseComponent);
|
||||
nmsPacketPlayOutTimes = typePacketPlayOutTitle.getConstructor(int.class, int.class, int.class);
|
||||
fromString = Class.forName("org.bukkit.craftbukkit." + version + ".util.CraftChatMessage").getMethod("fromString", String.class);
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException ex) {
|
||||
simpleTitleMessages = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void send(final Player receivingPacket, final Object title, final Object subtitle) {
|
||||
send(receivingPacket, title, subtitle, 0, 40, 10);
|
||||
}
|
||||
|
||||
public static void send(final Player receivingPacket, final Object title, final Object subtitle, final int fadeIn, final int keep, final int fadeOut) {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(Jobs.getInstance(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
String t = title == null ? null : CMIChatColor.translate((String) title);
|
||||
String s = subtitle == null ? null : CMIChatColor.translate((String) subtitle);
|
||||
|
||||
if (Version.isCurrentEqualOrLower(Version.v1_7_R4)) {
|
||||
ActionBarManager.send(receivingPacket, (t == null ? "" : t) + (s == null ? "" : s));
|
||||
return;
|
||||
}
|
||||
|
||||
if (simpleTitleMessages) {
|
||||
receivingPacket.sendMessage(t);
|
||||
receivingPacket.sendMessage(s);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
switch (Version.getCurrent()) {
|
||||
case v1_12_R1:
|
||||
case v1_13_R1:
|
||||
case v1_13_R2:
|
||||
case v1_14_R1:
|
||||
case v1_14_R2:
|
||||
case v1_15_R1:
|
||||
case v1_15_R2:
|
||||
case v1_16_R1:
|
||||
default:
|
||||
receivingPacket.sendTitle(t, s, fadeIn, keep, fadeOut);
|
||||
break;
|
||||
case v1_9_R1:
|
||||
case v1_9_R2:
|
||||
case v1_10_R1:
|
||||
case v1_11_R1:
|
||||
case v1_8_R1:
|
||||
case v1_8_R2:
|
||||
case v1_8_R3:
|
||||
Object packetTimes = nmsPacketPlayOutTimes.newInstance(fadeIn, keep, fadeOut);
|
||||
sendPacket(receivingPacket, packetTimes);
|
||||
if (title != null) {
|
||||
Object packetTitle = nmsPacketPlayOutTitle.newInstance(enumTitleAction.getField("TITLE").get(null), ((Object[]) fromString.invoke(null, t))[0]);
|
||||
sendPacket(receivingPacket, packetTitle);
|
||||
}
|
||||
if (subtitle != null) {
|
||||
if (title == null) {
|
||||
Object packetTitle = nmsPacketPlayOutTitle.newInstance(enumTitleAction.getField("TITLE").get(null), ((Object[]) fromString.invoke(null, ""))[0]);
|
||||
sendPacket(receivingPacket, packetTitle);
|
||||
}
|
||||
Object packetSubtitle = nmsPacketPlayOutTitle.newInstance(enumTitleAction.getField("SUBTITLE").get(null), ((Object[]) fromString.invoke(null, s))[0]);
|
||||
sendPacket(receivingPacket, packetSubtitle);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchFieldException ex) {
|
||||
simpleTitleMessages = true;
|
||||
Bukkit.getLogger().log(Level.SEVERE, "Your server can't fully support title messages. They will be shown in chat instead.");
|
||||
}
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void sendPacket(Player player, Object packet) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
|
||||
Object handle = getHandle.invoke(player);
|
||||
Object connection = playerConnection.get(handle);
|
||||
sendPacket.invoke(connection, packet);
|
||||
}
|
||||
|
||||
private static String getPacketPlayOutTitleClasspath() {
|
||||
return "net.minecraft.server." + Version.getCurrent() + ".PacketPlayOutTitle";
|
||||
}
|
||||
|
||||
private static String getEnumTitleActionClasspath() {
|
||||
return getPacketPlayOutTitleClasspath() + "$EnumTitleAction";
|
||||
}
|
||||
|
||||
}
|
95
src/main/java/com/gamingmesh/jobs/CMILib/Version.java
Normal file
95
src/main/java/com/gamingmesh/jobs/CMILib/Version.java
Normal file
@ -0,0 +1,95 @@
|
||||
package com.gamingmesh.jobs.CMILib;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public enum Version {
|
||||
v1_7_R1,
|
||||
v1_7_R2,
|
||||
v1_7_R3,
|
||||
v1_7_R4,
|
||||
v1_8_R1,
|
||||
v1_8_R2,
|
||||
v1_8_R3,
|
||||
v1_9_R1,
|
||||
v1_9_R2,
|
||||
v1_10_R1,
|
||||
v1_11_R1,
|
||||
v1_12_R1,
|
||||
v1_13_R1,
|
||||
v1_13_R2,
|
||||
v1_13_R3,
|
||||
v1_14_R1,
|
||||
v1_14_R2,
|
||||
v1_15_R1,
|
||||
v1_15_R2,
|
||||
v1_16_R1,
|
||||
v1_16_R2,
|
||||
v1_17_R1,
|
||||
v1_17_R2;
|
||||
|
||||
private Integer value;
|
||||
private String shortVersion;
|
||||
private static Version current = null;
|
||||
|
||||
Version() {
|
||||
try {
|
||||
this.value = Integer.valueOf(this.name().replaceAll("[^\\d.]", ""));
|
||||
} catch (Exception e) {
|
||||
}
|
||||
shortVersion = this.name().substring(0, this.name().length() - 3);
|
||||
}
|
||||
|
||||
public Integer getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public String getShortVersion() {
|
||||
return shortVersion;
|
||||
}
|
||||
|
||||
public static Version getCurrent() {
|
||||
if (current != null)
|
||||
return current;
|
||||
String[] v = Bukkit.getServer().getClass().getPackage().getName().split("\\.");
|
||||
String vv = v[v.length - 1];
|
||||
for (Version one : values()) {
|
||||
if (one.name().equalsIgnoreCase(vv)) {
|
||||
current = one;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return current;
|
||||
}
|
||||
|
||||
public boolean isLower(Version version) {
|
||||
return getValue() < version.getValue();
|
||||
}
|
||||
|
||||
public boolean isHigher(Version version) {
|
||||
return getValue() > version.getValue();
|
||||
}
|
||||
|
||||
public boolean isEqualOrLower(Version version) {
|
||||
return getValue() <= version.getValue();
|
||||
}
|
||||
|
||||
public boolean isEqualOrHigher(Version version) {
|
||||
return getValue() >= version.getValue();
|
||||
}
|
||||
|
||||
public static boolean isCurrentEqualOrHigher(Version v) {
|
||||
return getCurrent().getValue() >= v.getValue();
|
||||
}
|
||||
|
||||
public static boolean isCurrentHigher(Version v) {
|
||||
return getCurrent().getValue() > v.getValue();
|
||||
}
|
||||
|
||||
public static boolean isCurrentLower(Version v) {
|
||||
return getCurrent().getValue() < v.getValue();
|
||||
}
|
||||
|
||||
public static boolean isCurrentEqualOrLower(Version v) {
|
||||
return getCurrent().getValue() <= v.getValue();
|
||||
}
|
||||
}
|
@ -18,11 +18,12 @@
|
||||
|
||||
package com.gamingmesh.jobs;
|
||||
|
||||
import com.gamingmesh.jobs.CMILib.ActionBarTitleMessages;
|
||||
import com.gamingmesh.jobs.CMILib.RawMessage;
|
||||
import com.gamingmesh.jobs.CMILib.Reflections;
|
||||
import com.gamingmesh.jobs.CMILib.Version;
|
||||
import com.gamingmesh.jobs.CMILib.ActionBarManager;
|
||||
import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
import com.gamingmesh.jobs.CMILib.CMIReflections;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import com.gamingmesh.jobs.Gui.GuiManager;
|
||||
import com.gamingmesh.jobs.Placeholders.NewPlaceholderAPIHook;
|
||||
import com.gamingmesh.jobs.Placeholders.Placeholder;
|
||||
@ -90,7 +91,7 @@ public class Jobs extends JavaPlugin {
|
||||
private static ConfigManager configManager = null;
|
||||
private static GeneralConfigManager GconfigManager = null;
|
||||
|
||||
private static Reflections reflections = null;
|
||||
private static CMIReflections reflections = null;
|
||||
|
||||
private static JobsDAO dao = null;
|
||||
private static List<Job> jobs = null;
|
||||
@ -112,8 +113,6 @@ public class Jobs extends JavaPlugin {
|
||||
|
||||
private static NMS nms = null;
|
||||
|
||||
private static ActionBarTitleMessages actionbar = null;
|
||||
|
||||
protected static VersionChecker versionCheckManager = null;
|
||||
|
||||
protected static SelectionManager smanager = null;
|
||||
@ -171,9 +170,9 @@ public class Jobs extends JavaPlugin {
|
||||
return BpManager;
|
||||
}
|
||||
|
||||
public static Reflections getReflections() {
|
||||
public static CMIReflections getReflections() {
|
||||
if (reflections == null)
|
||||
reflections = new Reflections();
|
||||
reflections = new CMIReflections();
|
||||
return reflections;
|
||||
}
|
||||
|
||||
@ -215,12 +214,6 @@ public class Jobs extends JavaPlugin {
|
||||
return GconfigManager;
|
||||
}
|
||||
|
||||
public static ActionBarTitleMessages getActionBar() {
|
||||
if (actionbar == null)
|
||||
actionbar = new ActionBarTitleMessages();
|
||||
return actionbar;
|
||||
}
|
||||
|
||||
public static NMS getNms() {
|
||||
return nms;
|
||||
}
|
||||
@ -1172,7 +1165,7 @@ public class Jobs extends JavaPlugin {
|
||||
int sec = Math.round((time - System.currentTimeMillis()) / 1000L);
|
||||
if (inform) {
|
||||
if (player.canGetPaid(info))
|
||||
getActionBar().send(player.getPlayer(), lManager.getMessage("message.blocktimer", "[time]", sec));
|
||||
ActionBarManager.send(player.getPlayer(), lManager.getMessage("message.blocktimer", "[time]", sec));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -1198,7 +1191,7 @@ public class Jobs extends JavaPlugin {
|
||||
int sec = Math.round((time - System.currentTimeMillis()) / 1000L);
|
||||
if (inform) {
|
||||
if (player.canGetPaid(info))
|
||||
getActionBar().send(player.getPlayer(), lManager.getMessage("message.blocktimer", "[time]", sec));
|
||||
ActionBarManager.send(player.getPlayer(), lManager.getMessage("message.blocktimer", "[time]", sec));
|
||||
}
|
||||
getBpManager().add(block, cd);
|
||||
return false;
|
||||
@ -1285,7 +1278,7 @@ public class Jobs extends JavaPlugin {
|
||||
|
||||
public static void consoleMsg(String msg) {
|
||||
if (msg != null) {
|
||||
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', msg));
|
||||
Bukkit.getServer().getConsoleSender().sendMessage(CMIChatColor.translate(msg));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,9 +41,9 @@ import org.bukkit.entity.Tameable;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.FireworkMeta;
|
||||
|
||||
import com.gamingmesh.jobs.CMILib.ItemReflection;
|
||||
import com.gamingmesh.jobs.CMILib.Reflections;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import com.gamingmesh.jobs.CMILib.Version;
|
||||
import com.gamingmesh.jobs.CMILib.ActionBarManager;
|
||||
import com.gamingmesh.jobs.CMILib.CMIReflections;
|
||||
import com.gamingmesh.jobs.api.JobsJoinEvent;
|
||||
import com.gamingmesh.jobs.api.JobsLeaveEvent;
|
||||
import com.gamingmesh.jobs.api.JobsLevelUpEvent;
|
||||
@ -559,7 +559,7 @@ public class PlayerManager {
|
||||
if (player != null) {
|
||||
for (String line : message.split("\n")) {
|
||||
if (Jobs.getGCManager().LevelChangeActionBar)
|
||||
Jobs.getActionBar().send(player, line);
|
||||
ActionBarManager.send(player, line);
|
||||
if (Jobs.getGCManager().LevelChangeChat)
|
||||
player.sendMessage(line);
|
||||
}
|
||||
@ -716,7 +716,7 @@ public class PlayerManager {
|
||||
Bukkit.getServer().broadcastMessage(line);
|
||||
} else if (player != null) {
|
||||
if (Jobs.getGCManager().LevelChangeActionBar)
|
||||
Jobs.getActionBar().send(player, line);
|
||||
ActionBarManager.send(player, line);
|
||||
if (Jobs.getGCManager().LevelChangeChat)
|
||||
player.sendMessage(line);
|
||||
}
|
||||
@ -755,7 +755,7 @@ public class PlayerManager {
|
||||
Bukkit.getServer().broadcastMessage(line);
|
||||
} else if (player != null) {
|
||||
if (Jobs.getGCManager().TitleChangeActionBar)
|
||||
Jobs.getActionBar().send(player, line);
|
||||
ActionBarManager.send(player, line);
|
||||
if (Jobs.getGCManager().TitleChangeChat)
|
||||
player.sendMessage(line);
|
||||
}
|
||||
@ -896,7 +896,7 @@ public class PlayerManager {
|
||||
|
||||
// Lets check offhand
|
||||
if (Version.isCurrentEqualOrHigher(Version.v1_9_R1) && Jobs.getGCManager().boostedItemsInOffHand) {
|
||||
iih = ItemReflection.getItemInOffHand(player);
|
||||
iih = CMIReflections.getItemInOffHand(player);
|
||||
if (iih != null) {
|
||||
jitem = getJobsItemByNbt(iih);
|
||||
if (jitem != null && jitem.getJobs().contains(prog))
|
||||
@ -928,7 +928,7 @@ public class PlayerManager {
|
||||
if (item == null)
|
||||
return null;
|
||||
|
||||
Object itemName = Reflections.getNbt(item, JobsItemBoost);
|
||||
Object itemName = CMIReflections.getNbt(item, JobsItemBoost);
|
||||
|
||||
if (itemName == null || itemName.toString().isEmpty()) {
|
||||
// Checking old boost items and converting to new format if needed
|
||||
@ -938,7 +938,7 @@ public class PlayerManager {
|
||||
if (itemName != null) {
|
||||
JobItems b = ItemBoostManager.getItemByKey(itemName.toString());
|
||||
if (b != null) {
|
||||
ItemStack ic = Reflections.setNbt(item, JobsItemBoost, b.getNode());
|
||||
ItemStack ic = CMIReflections.setNbt(item, JobsItemBoost, b.getNode());
|
||||
item.setItemMeta(ic.getItemMeta());
|
||||
}
|
||||
break;
|
||||
|
@ -7,7 +7,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import com.gamingmesh.jobs.ItemBoostManager;
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.Reflections;
|
||||
import com.gamingmesh.jobs.CMILib.CMIReflections;
|
||||
import com.gamingmesh.jobs.commands.Cmd;
|
||||
import com.gamingmesh.jobs.commands.JobCommand;
|
||||
import com.gamingmesh.jobs.container.BoostMultiplier;
|
||||
@ -78,7 +78,7 @@ public class edititembonus implements Cmd {
|
||||
case add:
|
||||
if (jobitem == null)
|
||||
return false;
|
||||
iih = Reflections.setNbt(iih, "JobsItemBoost", jobitem.getNode());
|
||||
iih = CMIReflections.setNbt(iih, "JobsItemBoost", jobitem.getNode());
|
||||
Jobs.getNms().setItemInMainHand(player, iih);
|
||||
break;
|
||||
case list:
|
||||
@ -93,7 +93,7 @@ public class edititembonus implements Cmd {
|
||||
|
||||
sender.sendMessage(Jobs.getLanguage().getMessage("command.bonus.output.topline"));
|
||||
|
||||
Object key = Reflections.getNbt(iih, "JobsItemBoost");
|
||||
Object key = CMIReflections.getNbt(iih, "JobsItemBoost");
|
||||
if (key == null)
|
||||
return true;
|
||||
|
||||
|
@ -3,6 +3,7 @@ package com.gamingmesh.jobs.commands.list;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
import com.gamingmesh.jobs.commands.Cmd;
|
||||
import com.gamingmesh.jobs.commands.JobCommand;
|
||||
|
||||
@ -39,7 +40,7 @@ public class entitylist implements Cmd {
|
||||
msg += type.name().toLowerCase();
|
||||
}
|
||||
|
||||
sender.sendMessage(org.bukkit.ChatColor.translateAlternateColorCodes('&', msg));
|
||||
sender.sendMessage(CMIChatColor.translate(msg));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@ import org.bukkit.enchantments.EnchantmentTarget;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import com.gamingmesh.jobs.CMILib.Version;
|
||||
import com.gamingmesh.jobs.commands.Cmd;
|
||||
import com.gamingmesh.jobs.commands.JobCommand;
|
||||
|
||||
|
@ -9,7 +9,7 @@ import org.bukkit.boss.BarStyle;
|
||||
import org.bukkit.boss.BossBar;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import com.gamingmesh.jobs.CMILib.Version;
|
||||
import com.gamingmesh.jobs.container.BossBarInfo;
|
||||
import com.gamingmesh.jobs.container.Job;
|
||||
import com.gamingmesh.jobs.container.JobProgression;
|
||||
|
@ -18,11 +18,12 @@
|
||||
|
||||
package com.gamingmesh.jobs.config;
|
||||
|
||||
import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
import com.gamingmesh.jobs.CMILib.CMIEnchantment;
|
||||
import com.gamingmesh.jobs.CMILib.CMIEntityType;
|
||||
import com.gamingmesh.jobs.CMILib.CMIMaterial;
|
||||
import com.gamingmesh.jobs.CMILib.ConfigReader;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import com.gamingmesh.jobs.CMILib.Version;
|
||||
import com.gamingmesh.jobs.ItemBoostManager;
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.container.*;
|
||||
@ -704,7 +705,7 @@ public class ConfigManager {
|
||||
continue;
|
||||
}
|
||||
|
||||
String description = org.bukkit.ChatColor.translateAlternateColorCodes('&', jobSection.getString("description", ""));
|
||||
String description = CMIChatColor.translate(jobSection.getString("description", ""));
|
||||
|
||||
List<String> fDescription = new ArrayList<>();
|
||||
if (jobSection.contains("FullDescription")) {
|
||||
@ -713,7 +714,7 @@ public class ConfigManager {
|
||||
else if (jobSection.isList("FullDescription"))
|
||||
fDescription.addAll(jobSection.getStringList("FullDescription"));
|
||||
for (int i = 0; i < fDescription.size(); i++) {
|
||||
fDescription.set(i, org.bukkit.ChatColor.translateAlternateColorCodes('&', fDescription.get(i)));
|
||||
fDescription.set(i, CMIChatColor.translate(fDescription.get(i)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -971,7 +972,7 @@ public class ConfigManager {
|
||||
List<String> lore = new ArrayList<>();
|
||||
if (itemSection.contains("lore"))
|
||||
for (String eachLine : itemSection.getStringList("lore")) {
|
||||
lore.add(org.bukkit.ChatColor.translateAlternateColorCodes('&', eachLine));
|
||||
lore.add(CMIChatColor.translate(eachLine));
|
||||
}
|
||||
|
||||
HashMap<Enchantment, Integer> enchants = new HashMap<>();
|
||||
@ -1027,7 +1028,7 @@ public class ConfigManager {
|
||||
List<String> lore = new ArrayList<>();
|
||||
if (itemSection.contains("lore"))
|
||||
for (String eachLine : itemSection.getStringList("lore")) {
|
||||
lore.add(org.bukkit.ChatColor.translateAlternateColorCodes('&', eachLine));
|
||||
lore.add(CMIChatColor.translate(eachLine));
|
||||
}
|
||||
|
||||
HashMap<Enchantment, Integer> enchants = new HashMap<>();
|
||||
|
@ -35,7 +35,7 @@ import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.CMIEnchantment;
|
||||
import com.gamingmesh.jobs.CMILib.CMIMaterial;
|
||||
import com.gamingmesh.jobs.CMILib.ConfigReader;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import com.gamingmesh.jobs.CMILib.Version;
|
||||
import com.gamingmesh.jobs.container.CurrencyLimit;
|
||||
import com.gamingmesh.jobs.container.CurrencyType;
|
||||
import com.gamingmesh.jobs.container.Schedule;
|
||||
|
@ -24,6 +24,7 @@ import com.gamingmesh.jobs.CMIGUI.CMIGui;
|
||||
import com.gamingmesh.jobs.CMIGUI.CMIGuiButton;
|
||||
import com.gamingmesh.jobs.CMIGUI.GUIManager.GUIClickType;
|
||||
import com.gamingmesh.jobs.CMIGUI.GUIManager.GUIRows;
|
||||
import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
import com.gamingmesh.jobs.CMILib.CMIEnchantment;
|
||||
import com.gamingmesh.jobs.CMILib.CMIMaterial;
|
||||
import com.gamingmesh.jobs.container.BoostMultiplier;
|
||||
@ -340,12 +341,12 @@ public class ShopManager {
|
||||
Sitem.setIconAmount(NameSection.getInt("Icon.Amount", 1));
|
||||
|
||||
if (NameSection.isString("Icon.Name"))
|
||||
Sitem.setIconName(ChatColor.translateAlternateColorCodes('&', NameSection.getString("Icon.Name")));
|
||||
Sitem.setIconName(CMIChatColor.translate(NameSection.getString("Icon.Name")));
|
||||
|
||||
if (NameSection.isList("Icon.Lore")) {
|
||||
List<String> lore = new ArrayList<>();
|
||||
for (String eachLine : NameSection.getStringList("Icon.Lore")) {
|
||||
lore.add(ChatColor.translateAlternateColorCodes('&', eachLine));
|
||||
lore.add(CMIChatColor.translate(eachLine));
|
||||
}
|
||||
Sitem.setIconLore(lore);
|
||||
}
|
||||
@ -395,7 +396,7 @@ public class ShopManager {
|
||||
if (NameSection.isList("PerformCommands")) {
|
||||
List<String> cmd = new ArrayList<>();
|
||||
for (String eachLine : NameSection.getStringList("PerformCommands")) {
|
||||
cmd.add(ChatColor.translateAlternateColorCodes('&', eachLine));
|
||||
cmd.add(CMIChatColor.translate(eachLine));
|
||||
}
|
||||
Sitem.setCommands(cmd);
|
||||
}
|
||||
@ -421,12 +422,12 @@ public class ShopManager {
|
||||
|
||||
String name = null;
|
||||
if (itemSection.isString("Name"))
|
||||
name = ChatColor.translateAlternateColorCodes('&', itemSection.getString("Name"));
|
||||
name = CMIChatColor.translate(itemSection.getString("Name"));
|
||||
|
||||
List<String> lore = new ArrayList<>();
|
||||
if (itemSection.contains("Lore"))
|
||||
for (String eachLine : itemSection.getStringList("Lore")) {
|
||||
lore.add(ChatColor.translateAlternateColorCodes('&', eachLine));
|
||||
lore.add(CMIChatColor.translate(eachLine));
|
||||
}
|
||||
|
||||
HashMap<Enchantment, Integer> enchants = new HashMap<>();
|
||||
|
@ -30,8 +30,9 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
import com.gamingmesh.jobs.CMILib.CMIMaterial;
|
||||
import com.gamingmesh.jobs.CMILib.Reflections;
|
||||
import com.gamingmesh.jobs.CMILib.CMIReflections;
|
||||
|
||||
public class JobItems {
|
||||
private String node;
|
||||
@ -52,7 +53,7 @@ public class JobItems {
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
|
||||
if (name != null)
|
||||
meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name));
|
||||
meta.setDisplayName(CMIChatColor.translate(name));
|
||||
if (lore != null && !lore.isEmpty())
|
||||
meta.setLore(lore);
|
||||
|
||||
@ -70,7 +71,7 @@ public class JobItems {
|
||||
}
|
||||
item.setItemMeta(meta);
|
||||
item.setAmount(amount);
|
||||
item = Reflections.setNbt(item, "JobsItemBoost", node);
|
||||
item = CMIReflections.setNbt(item, "JobsItemBoost", node);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -91,11 +92,11 @@ public class JobItems {
|
||||
ItemStack item = this.item.clone();
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
if (meta.hasDisplayName())
|
||||
meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', meta.getDisplayName().replace("[player]", player.getName())));
|
||||
meta.setDisplayName(CMIChatColor.translate(meta.getDisplayName().replace("[player]", player.getName())));
|
||||
if (meta.hasLore()) {
|
||||
List<String> TranslatedLore = new ArrayList<>();
|
||||
for (String oneLore : meta.getLore()) {
|
||||
TranslatedLore.add(ChatColor.translateAlternateColorCodes('&', oneLore.replace("[player]", player.getName())));
|
||||
TranslatedLore.add(CMIChatColor.translate(oneLore.replace("[player]", player.getName())));
|
||||
}
|
||||
meta.setLore(TranslatedLore);
|
||||
}
|
||||
|
@ -31,6 +31,8 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.ActionBarManager;
|
||||
import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
import com.gamingmesh.jobs.Signs.SignTopType;
|
||||
import com.gamingmesh.jobs.dao.JobsDAO;
|
||||
import com.gamingmesh.jobs.economy.PaymentData;
|
||||
@ -174,7 +176,7 @@ public class JobsPlayer {
|
||||
data.setInformed();
|
||||
}
|
||||
if (data.IsAnnounceTime(limit.getAnnouncementDelay()) && player.isOnline())
|
||||
Jobs.getActionBar().send(player, Jobs.getLanguage().getMessage("command.limit.output." + name + "time", "%time%", TimeManage.to24hourShort(data.GetLeftTime(type))));
|
||||
ActionBarManager.send(player, Jobs.getLanguage().getMessage("command.limit.output." + name + "time", "%time%", TimeManage.to24hourShort(data.GetLeftTime(type))));
|
||||
if (data.isReseted())
|
||||
data.setReseted(false);
|
||||
return false;
|
||||
@ -733,8 +735,7 @@ public class JobsPlayer {
|
||||
|
||||
honorific = builder.toString().trim();
|
||||
if (honorific.length() > 0)
|
||||
honorific = org.bukkit.ChatColor.translateAlternateColorCodes('&',
|
||||
Jobs.getGCManager().modifyChatPrefix + honorific + Jobs.getGCManager().modifyChatSuffix);
|
||||
honorific = CMIChatColor.translate(Jobs.getGCManager().modifyChatPrefix + honorific + Jobs.getGCManager().modifyChatSuffix);
|
||||
|
||||
}
|
||||
|
||||
|
@ -69,8 +69,10 @@ import org.bukkit.permissions.PermissionDefault;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.CMILib.ActionBarManager;
|
||||
import com.gamingmesh.jobs.CMILib.CMIChatColor;
|
||||
import com.gamingmesh.jobs.CMILib.CMIMaterial;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import com.gamingmesh.jobs.CMILib.Version;
|
||||
import com.gamingmesh.jobs.Signs.SignTopType;
|
||||
import com.gamingmesh.jobs.Signs.SignUtil;
|
||||
import com.gamingmesh.jobs.Signs.jobsSign;
|
||||
@ -369,8 +371,7 @@ public class JobsListener implements Listener {
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () ->
|
||||
signUtil.SignUpdate(job, type), 1L);
|
||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> signUtil.SignUpdate(job, type), 1L);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||
@ -413,7 +414,7 @@ public class JobsListener implements Listener {
|
||||
|
||||
private static String Convert(String line) {
|
||||
Pattern ReplacePatern = Pattern.compile("&([0-9a-fk-or])");
|
||||
return ReplacePatern.matcher(ChatColor.translateAlternateColorCodes('&', line)).replaceAll("\u00a7$1");
|
||||
return ReplacePatern.matcher(CMIChatColor.translate(line)).replaceAll("\u00a7$1");
|
||||
}
|
||||
|
||||
// Adding to chat prefix job name
|
||||
@ -493,8 +494,7 @@ public class JobsListener implements Listener {
|
||||
if (!Jobs.getGCManager().canPerformActionInWorld(event.getBlock().getWorld()))
|
||||
return;
|
||||
|
||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () ->
|
||||
Jobs.getBpManager().remove(event.getBlock()), 1L);
|
||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> Jobs.getBpManager().remove(event.getBlock()), 1L);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
@ -542,7 +542,7 @@ public class JobsListener implements Listener {
|
||||
|
||||
if (meinOk != null) {
|
||||
event.setCancelled(true);
|
||||
Jobs.getActionBar().send(player, Jobs.getLanguage().getMessage("limitedItem.error.levelup", "[jobname]", meinOk));
|
||||
ActionBarManager.send(player, Jobs.getLanguage().getMessage("limitedItem.error.levelup", "[jobname]", meinOk));
|
||||
}
|
||||
}
|
||||
|
||||
@ -551,7 +551,7 @@ public class JobsListener implements Listener {
|
||||
return false;
|
||||
|
||||
if (oneItem.getName() != null && name != null) {
|
||||
if (!ChatColor.translateAlternateColorCodes('&', oneItem.getName()).equalsIgnoreCase(name)) {
|
||||
if (!CMIChatColor.translate(oneItem.getName()).equalsIgnoreCase(name)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -18,10 +18,11 @@
|
||||
|
||||
package com.gamingmesh.jobs.listeners;
|
||||
|
||||
import com.gamingmesh.jobs.CMILib.ActionBarManager;
|
||||
import com.gamingmesh.jobs.CMILib.CMIEnchantment;
|
||||
import com.gamingmesh.jobs.CMILib.CMIMaterial;
|
||||
import com.gamingmesh.jobs.CMILib.ItemManager;
|
||||
import com.gamingmesh.jobs.CMILib.VersionChecker.Version;
|
||||
import com.gamingmesh.jobs.CMILib.Version;
|
||||
import com.gamingmesh.jobs.Jobs;
|
||||
import com.gamingmesh.jobs.actions.*;
|
||||
import com.gamingmesh.jobs.api.JobsChunkChangeEvent;
|
||||
@ -1713,9 +1714,9 @@ public class JobsPaymentListener implements Listener {
|
||||
report = true;
|
||||
|
||||
if (report)
|
||||
Jobs.getActionBar().send(p, Jobs.getLanguage().getMessage("general.error.noFurnaceRegistration"));
|
||||
ActionBarManager.send(p, Jobs.getLanguage().getMessage("general.error.noFurnaceRegistration"));
|
||||
} else if (done.equals(ownershipFeedback.newReg) && jPlayer != null) {
|
||||
Jobs.getActionBar().send(p, Jobs.getLanguage().getMessage("general.error.newFurnaceRegistration",
|
||||
ActionBarManager.send(p, Jobs.getLanguage().getMessage("general.error.newFurnaceRegistration",
|
||||
"[current]", jPlayer.getFurnaceCount(),
|
||||
"[max]", jPlayer.getMaxFurnacesAllowed() == 0 ? "-" : jPlayer.getMaxFurnacesAllowed()));
|
||||
}
|
||||
@ -1739,9 +1740,9 @@ public class JobsPaymentListener implements Listener {
|
||||
report = true;
|
||||
|
||||
if (report)
|
||||
Jobs.getActionBar().send(p, Jobs.getLanguage().getMessage("general.error.noBrewingRegistration"));
|
||||
ActionBarManager.send(p, Jobs.getLanguage().getMessage("general.error.noBrewingRegistration"));
|
||||
} else if (done.equals(ownershipFeedback.newReg) && jPlayer != null) {
|
||||
Jobs.getActionBar().send(p, Jobs.getLanguage().getMessage("general.error.newBrewingRegistration",
|
||||
ActionBarManager.send(p, Jobs.getLanguage().getMessage("general.error.newBrewingRegistration",
|
||||
"[current]", jPlayer.getBrewingStandCount(),
|
||||
"[max]", jPlayer.getMaxBrewingStandsAllowed() == 0 ? "-" : jPlayer.getMaxBrewingStandsAllowed()));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user