diff --git a/pom.xml b/pom.xml
index 21e96cbe..ee9e8f16 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
4.0.0
Jobs
jobs
- 4.1.0
+ 4.1.1
Jobs
http://maven.apache.org
diff --git a/src/main/java/com/gamingmesh/jobs/commands/list/give.java b/src/main/java/com/gamingmesh/jobs/commands/list/give.java
index 03429cde..bb1d7894 100644
--- a/src/main/java/com/gamingmesh/jobs/commands/list/give.java
+++ b/src/main/java/com/gamingmesh/jobs/commands/list/give.java
@@ -17,39 +17,53 @@ public class give implements Cmd {
@JobCommand(2500)
public boolean perform(Jobs plugin, final CommandSender sender, final String[] args) {
- if (args.length < 1 || Jobs.getJob(args[0]) == null && Jobs.getJob(args[1]) == null) {
+ Player player = null;
+ Job job = null;
+ String itemName = null;
+
+ for (String one : args) {
+ if (player == null) {
+ player = Bukkit.getPlayer(one);
+ if (player != null)
+ continue;
+ }
+
+ if (job == null) {
+ job = Jobs.getJob(one);
+ if (job != null)
+ continue;
+ }
+ itemName = one;
+ }
+
+ if (player == null && sender instanceof Player)
+ player = (Player) sender;
+
+ if (player == null) {
+ sender.sendMessage(Jobs.getLanguage().getMessage("command.give.output.notonline", "%playername%", args[0]));
+ return true;
+ }
+
+ if (job == null || itemName == null) {
Jobs.getCommandManager().sendUsage(sender, "give");
return true;
}
- if (args.length == 2 && sender instanceof Player) {
- Job job = Jobs.getJob(args[0]);
- for (JobItems item : job.getItems()) {
- if (item.getNode().equalsIgnoreCase(args[1])) {
- GiveItem.GiveItemForPlayer((Player) sender, item.getId(), 0, 1, item.getName(), item.getLore(), item.getEnchants());
- return true;
- }
+ JobItems jItem = null;
+
+ for (JobItems item : job.getItems()) {
+ if (item.getNode().equalsIgnoreCase(itemName)) {
+ jItem = item;
+ break;
}
+ }
+
+ if (jItem == null || jItem.getItemStack(player) == null) {
sender.sendMessage(Jobs.getLanguage().getMessage("command.give.output.noitem"));
return true;
- } else if (args.length == 3) {
- Job job = Jobs.getJob(args[1]);
- Player player = Bukkit.getPlayer(args[0]);
- if (player == null) {
- sender.sendMessage(Jobs.getLanguage().getMessage("command.give.output.notonline", "%playername%", args[0]));
- return true;
- }
- for (JobItems item : job.getItems()) {
- if (item.getNode().equalsIgnoreCase(args[2])) {
- GiveItem.GiveItemForPlayer(player, item.getId(), 0, 1, item.getName(), item.getLore(), item.getEnchants());
- return true;
- }
- }
- sender.sendMessage(Jobs.getLanguage().getMessage("command.give.output.noitem"));
- return true;
- } else {
- Jobs.getCommandManager().sendUsage(sender, "give");
- return true;
}
+
+ GiveItem.GiveItemForPlayer(player, jItem.getItemStack(player));
+ return true;
}
}
diff --git a/src/main/java/com/gamingmesh/jobs/container/JobItems.java b/src/main/java/com/gamingmesh/jobs/container/JobItems.java
index d3fb4402..df9977dd 100644
--- a/src/main/java/com/gamingmesh/jobs/container/JobItems.java
+++ b/src/main/java/com/gamingmesh/jobs/container/JobItems.java
@@ -18,10 +18,17 @@
package com.gamingmesh.jobs.container;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map.Entry;
+import org.bukkit.ChatColor;
+import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
public class JobItems {
private String node;
@@ -48,6 +55,31 @@ public class JobItems {
return this.node;
}
+ public ItemStack getItemStack(Player player) {
+ try {
+ ItemStack item = new ItemStack(Material.getMaterial(id), amount, (short) data);
+ ItemMeta meta = item.getItemMeta();
+ if (this.name != null)
+ meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name));
+ if (lore != null) {
+ List TranslatedLore = new ArrayList();
+ for (String oneLore : lore) {
+ TranslatedLore.add(ChatColor.translateAlternateColorCodes('&', oneLore.replace("[player]", player.getName())));
+ }
+ meta.setLore(TranslatedLore);
+ }
+ if (enchants != null)
+ for (Entry OneEnchant : enchants.entrySet()) {
+ meta.addEnchant(OneEnchant.getKey(), OneEnchant.getValue(), true);
+ }
+ item.setItemMeta(meta);
+ return item;
+ } catch (Exception e) {
+
+ }
+ return null;
+ }
+
public int getId() {
return this.id;
}
diff --git a/src/main/java/com/gamingmesh/jobs/stuff/GiveItem.java b/src/main/java/com/gamingmesh/jobs/stuff/GiveItem.java
index 782468fb..668dad00 100644
--- a/src/main/java/com/gamingmesh/jobs/stuff/GiveItem.java
+++ b/src/main/java/com/gamingmesh/jobs/stuff/GiveItem.java
@@ -35,4 +35,10 @@ public class GiveItem {
player.getPlayer().updateInventory();
return true;
}
+
+ public static boolean GiveItemForPlayer(Player player, ItemStack item) {
+ player.getInventory().addItem(item);
+ player.getPlayer().updateInventory();
+ return true;
+ }
}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 3609892c..0799ff47 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,7 +1,7 @@
name: Jobs
description: Jobs Plugin for the BukkitAPI
main: com.gamingmesh.jobs.Jobs
-version: 4.1.0
+version: 4.1.1
website: https://www.spigotmc.org/resources/jobs-reborn.4216/
author: phrstbrn
softdepend: [Vault, iConomy, MythicMobs, McMMO, WorldGuard, MyPet]