1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-11-29 14:05:25 +01:00

Merge pull request #249 from LogGits/patch-1

Adds an Item field to GUI
This commit is contained in:
montlikadani 2018-10-08 16:49:08 +02:00 committed by GitHub
commit 02fb6be7fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 102 additions and 36 deletions

View File

@ -545,43 +545,106 @@ public class ConfigManager {
}
}
// Gui item
ItemStack GUIitem = CMIMaterial.GREEN_WOOL.newItemStack();
if (jobSection.contains("Gui")) {
ConfigurationSection guiSection = jobSection.getConfigurationSection("Gui");
if (guiSection.contains("Id") && guiSection.contains("Data") && guiSection.isInt("Id") && guiSection.isInt("Data")) {
GUIitem = CMIMaterial.get(guiSection.getInt("Id"), guiSection.getInt("Data")).newItemStack();
if (guiSection.contains("Enchantments")) {
List<String> enchants = guiSection.getStringList("Enchantments");
if (enchants.size() > 0) {
for (String str4 : enchants) {
String[] id = str4.split(":");
if ((GUIitem.getItemMeta() instanceof EnchantmentStorageMeta)) {
EnchantmentStorageMeta enchantMeta = (EnchantmentStorageMeta) GUIitem.getItemMeta();
enchantMeta.addStoredEnchant(Enchantment.getByName(id[0]), Integer.parseInt(id[1]), true);
GUIitem.setItemMeta(enchantMeta);
} else {
GUIitem.addUnsafeEnchantment(Enchantment.getByName(id[0]), Integer.parseInt(id[1]));
// Gui item
ItemStack GUIitem = CMIMaterial.GREEN_WOOL.newItemStack();
if (jobSection.contains("Gui")) {
ConfigurationSection guiSection = jobSection.getConfigurationSection("Gui");
if (guiSection.contains("Item") && guiSection.isString("Item")) {
String item = guiSection.getString("Item");
String subType = "";
@SuppressWarnings("unused")
String meta = "";
if (item.contains("-")) {
// uses subType
subType = ":" + item.split("-")[1];
meta = item.split("-")[1];
item = item.split("-")[0];
}
CMIMaterial material = CMIMaterial.get(item + (subType));
if (material == null)
material = CMIMaterial.get(item.replace(" ", "_").toUpperCase());
if (material == null) {
// try integer method
Integer matId = null;
try {
matId = Integer.valueOf(item);
} catch (NumberFormatException e) {
}
if (matId != null) {
material = CMIMaterial.get(matId);
if (material != null) {
Jobs.getPluginLogger().warning("Job " + jobName + " is using GUI item ID: " + item + "!");
Jobs.getPluginLogger().warning("Please use the Material name instead: " + material.toString() + "!");
}
}
}
GUIitem = material.newItemStack();
if (guiSection.contains("Enchantments")) {
List<String> enchants = guiSection.getStringList("Enchantments");
if (enchants.size() > 0) {
for (String str4 : enchants) {
String[] enchantid = str4.split(":");
if ((GUIitem.getItemMeta() instanceof EnchantmentStorageMeta)) {
EnchantmentStorageMeta enchantMeta = (EnchantmentStorageMeta) GUIitem.getItemMeta();
enchantMeta.addStoredEnchant(Enchantment.getByName(enchantid[0]), Integer.parseInt(enchantid[1]), true);
GUIitem.setItemMeta(enchantMeta);
} else {
GUIitem.addUnsafeEnchantment(Enchantment.getByName(enchantid[0]), Integer.parseInt(enchantid[1]));
}
}
}
} else if (guiSection.contains("CustomSkull")) {
String skullOwner = guiSection.getString("CustomSkull");
GUIitem = CMIMaterial.PLAYER_HEAD.newItemStack();
SkullMeta skullMeta = (SkullMeta) GUIitem.getItemMeta();
if (skullOwner.length() == 36) {
try {
OfflinePlayer offPlayer = Bukkit.getOfflinePlayer(UUID.fromString(skullOwner));
skullMeta.setOwner(offPlayer.getName());
} catch (Exception e) {
}
} else
skullMeta.setOwner(skullOwner);
GUIitem.setItemMeta(skullMeta);
} else
Jobs.getPluginLogger().warning("Job " + jobKey + " has an invalid Gui property. Please fix this if you want to use it!");
} else if (guiSection.contains("Id") && guiSection.contains("Data") && guiSection.isInt("Id") && guiSection.isInt("Data")) {
GUIitem = CMIMaterial.get(guiSection.getInt("Id"), guiSection.getInt("Data")).newItemStack();
if (guiSection.contains("Enchantments")) {
List<String> enchants = guiSection.getStringList("Enchantments");
if (enchants.size() > 0) {
for (String str4 : enchants) {
String[] id = str4.split(":");
if ((GUIitem.getItemMeta() instanceof EnchantmentStorageMeta)) {
EnchantmentStorageMeta enchantMeta = (EnchantmentStorageMeta) GUIitem.getItemMeta();
enchantMeta.addStoredEnchant(Enchantment.getByName(id[0]), Integer.parseInt(id[1]), true);
GUIitem.setItemMeta(enchantMeta);
} else {
GUIitem.addUnsafeEnchantment(Enchantment.getByName(id[0]), Integer.parseInt(id[1]));
}
}
}
} else if (guiSection.contains("CustomSkull")) {
String skullOwner = guiSection.getString("CustomSkull");
GUIitem = CMIMaterial.PLAYER_HEAD.newItemStack();
SkullMeta skullMeta = (SkullMeta) GUIitem.getItemMeta();
if (skullOwner.length() == 36) {
try {
OfflinePlayer offPlayer = Bukkit.getOfflinePlayer(UUID.fromString(skullOwner));
skullMeta.setOwner(offPlayer.getName());
} catch (Exception e) {
}
} else
skullMeta.setOwner(skullOwner);
GUIitem.setItemMeta(skullMeta);
} else
Jobs.getPluginLogger().warning("Job " + jobKey + " has an invalid Gui property. Please fix this if you want to use it!");
}
} else if (guiSection.contains("CustomSkull")) {
String skullOwner = guiSection.getString("CustomSkull");
GUIitem = CMIMaterial.PLAYER_HEAD.newItemStack();
SkullMeta skullMeta = (SkullMeta) GUIitem.getItemMeta();
if (skullOwner.length() == 36) {
try {
OfflinePlayer offPlayer = Bukkit.getOfflinePlayer(UUID.fromString(skullOwner));
skullMeta.setOwner(offPlayer.getName());
} catch (Exception e) {
}
} else
skullMeta.setOwner(skullOwner);
GUIitem.setItemMeta(skullMeta);
} else
Jobs.getPluginLogger().warning("Job " + jobKey + " has an invalid Gui property. Please fix this if you want to use it!");
}
}
// Permissions
ArrayList<JobPermission> jobPermissions = new ArrayList<>();

View File

@ -79,10 +79,13 @@ Jobs:
rejoinCooldown: 10
# GUI icon information when using GUI function
Gui:
# name of the block
Item: LOG:2
# If you want to use this instaed of Item name.
# id of block
Id: 17
# Id: 17
# data of block, usually its 0, but in example Diorite will have id of 1 and data of 3
Data: 2
# Data: 2
# enchants in the item
Enchantments:
- 'DURABILITY:1'
@ -2459,4 +2462,4 @@ Jobs:
experience-progression-equation: baseexperience-(baseexperience*((numjobs-1) *0.01))
Kill:
Player:
income: 7.5
income: 7.5