Add ItemNameResolver and update item filter

This commit is contained in:
GeorgH93 2017-03-04 17:58:59 +01:00
parent 58b4bb3eb0
commit ae1bbaea2f
4 changed files with 20 additions and 17 deletions

View File

@ -13,8 +13,7 @@ Language:
Cooldown: "&2Bitte warte noch {TimeLeft} Sekunden bis du deinen Rucksack wieder öffnest."
#Parameter: {CurrentGameMode}, {AllowedGameModes}
WrongGameMode: "Du darfst deinen Rucksack in deinem aktuellem Game-Mode nicht öffnen."
Shulkerboxes:
NotAllowedInBackpack: "&cShulkerboxes sind im Rucksack nicht erlaubt."
NotAllowedInBackpack: "&c{ItemName} ist im Rucksack nicht erlaubt."
Commands:
Description:
Backpack: "Öffent deinen Rucksack."

View File

@ -13,8 +13,7 @@ Language:
Cooldown: "&2Please wait {TimeLeft} seconds till you reopen your backpack."
#Parameter: {CurrentGameMode}, {AllowedGameModes}
WrongGameMode: "You are not allowed to open your backpack in your current game-mode."
Shulkerboxes:
NotAllowedInBackpack: "&cShulkerboxes are not allowed in the backpack."
NotAllowedInBackpack: "&c{ItemName} is not allowed in the backpack."
Commands:
Description:
Backpack: "Opens your backpack."

View File

@ -18,10 +18,10 @@
package at.pcgamingfreaks.Minepacks.Bukkit.Database;
import at.pcgamingfreaks.Bukkit.Configuration;
import at.pcgamingfreaks.Bukkit.MinecraftMaterial;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.*;
@ -280,13 +280,13 @@ public boolean isItemFilterEnabled()
return config.getBoolean("ItemFilter.Enable", false) || config.getBoolean("Shulkerboxes.PreventInBackpack", true);
}
public Collection<Material> getItemFilterBlacklist()
public Collection<MinecraftMaterial> getItemFilterBlacklist()
{
List<String> stringBlacklist = config.getStringList("ItemFilter.Blacklist", new LinkedList<String>());
Collection<Material> blacklist = new LinkedList<>();
Collection<MinecraftMaterial> blacklist = new LinkedList<>();
for(String item : stringBlacklist)
{
Material mat = Material.matchMaterial(item);
MinecraftMaterial mat = MinecraftMaterial.fromInput(item);
if(mat != null) blacklist.add(mat);
}
return blacklist;

View File

@ -18,8 +18,10 @@
package at.pcgamingfreaks.Minepacks.Bukkit.Listener;
import at.pcgamingfreaks.Bukkit.Message.Message;
import at.pcgamingfreaks.Bukkit.MinecraftMaterial;
import at.pcgamingfreaks.Minepacks.Bukkit.API.Backpack;
import at.pcgamingfreaks.Minepacks.Bukkit.Minepacks;
import at.pcgamingfreaks.PluginLib.Bukkit.ItemNameResolver;
import org.bukkit.Material;
import org.bukkit.entity.Player;
@ -35,7 +37,7 @@
public class ItemFilter extends MinepacksListener
{
private final Message messageNotAllowedInBackpack;
private final Collection<Material> blockedMaterials = new HashSet<>();
private final Collection<MinecraftMaterial> blockedMaterials = new HashSet<>();
public ItemFilter(final Minepacks plugin)
{
@ -43,21 +45,24 @@ public ItemFilter(final Minepacks plugin)
if(plugin.getConfiguration().isShulkerboxesPreventInBackpackEnabled())
{
blockedMaterials.addAll(DisableShulkerboxes.SHULKER_BOX_MATERIALS);
for(Material mat : DisableShulkerboxes.SHULKER_BOX_MATERIALS)
{
blockedMaterials.add(new MinecraftMaterial(mat, (short) -1));
}
}
blockedMaterials.addAll(plugin.getConfiguration().getItemFilterBlacklist());
messageNotAllowedInBackpack = plugin.lang.getMessage("Ingame.Shulkerboxes.NotAllowedInBackpack"); //TODO change message
messageNotAllowedInBackpack = plugin.lang.getMessage("Ingame.NotAllowedInBackpack").replaceAll("\\{ItemName}", "%s");
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onItemMove(InventoryMoveItemEvent event)
{
if(event.getDestination().getHolder() instanceof Backpack && blockedMaterials.contains(event.getItem().getType()))
if(event.getDestination().getHolder() instanceof Backpack && blockedMaterials.contains(event.getItem()))
{
if(event.getSource().getHolder() instanceof Player)
{
messageNotAllowedInBackpack.send((Player) event.getSource().getHolder());
messageNotAllowedInBackpack.send((Player) event.getSource().getHolder(), ItemNameResolver.getInstance().getName(event.getItem().getType()));
}
event.setCancelled(true);
}
@ -66,9 +71,9 @@ public void onItemMove(InventoryMoveItemEvent event)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onItemMove(InventoryClickEvent event)
{
if(event.getInventory().getHolder() instanceof Backpack && event.getCurrentItem() != null && blockedMaterials.contains(event.getCurrentItem().getType()))
if(event.getInventory().getHolder() instanceof Backpack && event.getCurrentItem() != null && blockedMaterials.contains(event.getCurrentItem()))
{
messageNotAllowedInBackpack.send(event.getView().getPlayer());
messageNotAllowedInBackpack.send(event.getView().getPlayer(), ItemNameResolver.getInstance().getName(event.getCurrentItem().getType()));
event.setCancelled(true);
}
}
@ -76,9 +81,9 @@ public void onItemMove(InventoryClickEvent event)
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onItemMove(InventoryDragEvent event)
{
if(event.getInventory().getHolder() instanceof Backpack && event.getOldCursor() != null && blockedMaterials.contains(event.getOldCursor().getType()))
if(event.getInventory().getHolder() instanceof Backpack && event.getOldCursor() != null && blockedMaterials.contains(event.getOldCursor()))
{
messageNotAllowedInBackpack.send(event.getView().getPlayer());
messageNotAllowedInBackpack.send(event.getView().getPlayer(), ItemNameResolver.getInstance().getName(event.getOldCursor().getType()));
event.setCancelled(true);
}
}