RealBackpacks/src/main/java/cn/citycraft/RealBackpacks/listeners/CraftListener.java

60 lines
2.3 KiB
Java

package cn.citycraft.RealBackpacks.listeners;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.PrepareItemCraftEvent;
import org.bukkit.inventory.ItemStack;
import cn.citycraft.RealBackpacks.RealBackpacks;
public class CraftListener implements Listener {
private final RealBackpacks plugin;
public CraftListener(final RealBackpacks plugin) {
this.plugin = plugin;
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPrepareCraft(final PrepareItemCraftEvent e) {
final ItemStack result = e.getInventory().getResult();
final HumanEntity human = e.getView().getPlayer();
if (!(human instanceof Player) || result == null) {
return;
}
for (final String backpack : plugin.backpacks) {
if (plugin.backpackOverrides.get(backpack) != null && result.isSimilar(plugin.backpackOverrides.get(backpack))) {
if (RealBackpacks.globalGlow && plugin.backpackData.get(backpack).get(17) != null && plugin.backpackData.get(backpack).get(17).equalsIgnoreCase("true")) {
e.getInventory().setResult(RealBackpacks.NMS.addGlow(plugin.backpackItems.get(backpack)));
} else {
e.getInventory().setResult(plugin.backpackItems.get(backpack));
}
break;
}
}
if (result.hasItemMeta() && result.getItemMeta().hasDisplayName()) {
for (final String backpack : plugin.backpacks) {
final List<String> key = plugin.backpackData.get(backpack);
if (!result.getItemMeta().getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', key.get(3)))) {
continue;
}
if (!human.hasPermission("rb." + backpack + ".craft") && plugin.isUsingPerms()) {
e.getInventory().setResult(null);
((Player) human).sendMessage(ChatColor.RED + "你没有合成此背包的权限...");
break;
}
if (RealBackpacks.globalGlow && plugin.backpackData.get(backpack).get(17) != null && plugin.backpackData.get(backpack).get(17).equalsIgnoreCase("true")) {
e.getInventory().setResult(RealBackpacks.NMS.addGlow(plugin.backpackItems.get(backpack)));
}
}
}
}
}