[trunk] Item lists in settings are now stored as Integer lists.

Also: Names from items.csv now work in item lists.

git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1084 e251c2fe-e539-e718-e476-b85c1f46cddb
This commit is contained in:
snowleo 2011-04-01 22:06:00 +00:00
parent 1e45b468dc
commit 3c59ec9c58
4 changed files with 121 additions and 40 deletions

View file

@ -1,16 +1,20 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.util.*; import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import com.earth2me.essentials.commands.IEssentialsCommand; import com.earth2me.essentials.commands.IEssentialsCommand;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import org.bukkit.entity.CreatureType; import org.bukkit.entity.CreatureType;
import org.bukkit.inventory.ItemStack;
public class Settings implements IConf public class Settings implements IConf
{ {
private EssentialsConf config; private EssentialsConf config;
private final static Logger logger = Logger.getLogger("Minecraft");
public Settings(File dataFolder) public Settings(File dataFolder)
{ {
@ -197,39 +201,94 @@ public class Settings implements IConf
return epSettings; return epSettings;
} }
public ArrayList getEpAlertOnPlacement() public ArrayList<Integer> getEpAlertOnPlacement()
{ {
ArrayList epAlertPlace = new ArrayList(); ArrayList<Integer> epAlertPlace = new ArrayList<Integer>();
epAlertPlace.addAll(Arrays.asList(config.getString("protect.alert.on-placement", "").split(","))); for (String itemName : config.getString("protect.alert.on-placement", "").split(",")) {
if (itemName.isEmpty()) {
continue;
}
ItemStack is;
try {
is = ItemDb.get(itemName);
epAlertPlace.add(is.getTypeId());
} catch (Exception ex) {
logger.log(Level.SEVERE, "Unknown item " + itemName + " in alert on placement list.");
}
}
return epAlertPlace; return epAlertPlace;
} }
public ArrayList getEpAlertOnUse() public ArrayList<Integer> getEpAlertOnUse()
{ {
ArrayList epAlertUse = new ArrayList(); ArrayList<Integer> epAlertUse = new ArrayList<Integer>();
epAlertUse.addAll(Arrays.asList(config.getString("protect.alert.on-use", "").split(","))); for (String itemName : config.getString("protect.alert.on-use", "").split(",")) {
if (itemName.isEmpty()) {
continue;
}
ItemStack is;
try {
is = ItemDb.get(itemName);
epAlertUse.add(is.getTypeId());
} catch (Exception ex) {
logger.log(Level.SEVERE, "Unknown item " + itemName + " in alert on use list.");
}
}
return epAlertUse; return epAlertUse;
} }
public ArrayList getEpAlertOnBreak() public ArrayList<Integer> getEpAlertOnBreak()
{ {
ArrayList epAlertPlace = new ArrayList(); ArrayList<Integer> epAlertPlace = new ArrayList<Integer>();
epAlertPlace.addAll(Arrays.asList(config.getString("protect.alert.on-break", "").split(","))); for (String itemName : config.getString("protect.alert.on-break", "").split(",")) {
if (itemName.isEmpty()) {
continue;
}
ItemStack is;
try {
is = ItemDb.get(itemName);
epAlertPlace.add(is.getTypeId());
} catch (Exception ex) {
logger.log(Level.SEVERE, "Unknown item " + itemName + " in alert on break list.");
}
}
return epAlertPlace; return epAlertPlace;
} }
public ArrayList epBlackListPlacement() public ArrayList<Integer> epBlackListPlacement()
{ {
ArrayList epBlack = new ArrayList(); ArrayList<Integer> epBlacklistPlacement = new ArrayList<Integer>();
epBlack.addAll(Arrays.asList(config.getString("protect.blacklist.placement", "").split(","))); for (String itemName : config.getString("protect.blacklist.placement", "").split(",")) {
return epBlack; if (itemName.isEmpty()) {
continue;
}
ItemStack is;
try {
is = ItemDb.get(itemName);
epBlacklistPlacement.add(is.getTypeId());
} catch (Exception ex) {
logger.log(Level.SEVERE, "Unknown item " + itemName + " in placement blacklist.");
}
}
return epBlacklistPlacement;
} }
public ArrayList epBlackListUsage() public ArrayList<Integer> epBlackListUsage()
{ {
ArrayList epBlack = new ArrayList(); ArrayList<Integer> epBlackListUsage = new ArrayList<Integer>();
epBlack.addAll(Arrays.asList(config.getString("protect.blacklist.usage", "").split(","))); for (String itemName : config.getString("protect.blacklist.usage", "").split(",")) {
return epBlack; if (itemName.isEmpty()) {
continue;
}
ItemStack is;
try {
is = ItemDb.get(itemName);
epBlackListUsage.add(is.getTypeId());
} catch (Exception ex) {
logger.log(Level.SEVERE, "Unknown item " + itemName + " in usage blacklist.");
}
}
return epBlackListUsage;
} }
public HashMap<String, Boolean> getEpGuardSettings() public HashMap<String, Boolean> getEpGuardSettings()
@ -332,17 +391,39 @@ public class Settings implements IConf
config.load(); config.load();
} }
public ArrayList itemSpawnBlacklist() public ArrayList<Integer> itemSpawnBlacklist()
{ {
ArrayList epItemSpwn = new ArrayList(); ArrayList<Integer> epItemSpwn = new ArrayList<Integer>();
epItemSpwn.addAll(Arrays.asList(config.getString("item-spawn-blacklist", "").split(","))); for (String itemName : config.getString("item-spawn-blacklist", "").split(",")) {
if (itemName.isEmpty()) {
continue;
}
ItemStack is;
try {
is = ItemDb.get(itemName);
epItemSpwn.add(is.getTypeId());
} catch (Exception ex) {
logger.log(Level.SEVERE, "Unknown item " + itemName + " in item spawn blacklist.");
}
}
return epItemSpwn; return epItemSpwn;
} }
public ArrayList epBlockBreakingBlacklist() public ArrayList<Integer> epBlockBreakingBlacklist()
{ {
ArrayList epBreakList = new ArrayList(); ArrayList<Integer> epBreakList = new ArrayList<Integer>();
epBreakList.addAll(Arrays.asList(config.getString("protect.blacklist.break", "").split(","))); for (String itemName : config.getString("protect.blacklist.break", "").split(",")) {
if (itemName.isEmpty()) {
continue;
}
ItemStack is;
try {
is = ItemDb.get(itemName);
epBreakList.add(is.getTypeId());
} catch (Exception ex) {
logger.log(Level.SEVERE, "Unknown item " + itemName + " in block breaking blacklist.");
}
}
return epBreakList; return epBreakList;
} }
} }

View file

@ -26,12 +26,12 @@ public class EssentialsProtect extends JavaPlugin
public static HashMap<String, String> dataSettings = null; public static HashMap<String, String> dataSettings = null;
public static HashMap<String, Boolean> guardSettings = null; public static HashMap<String, Boolean> guardSettings = null;
public static HashMap<String, Boolean> playerSettings = null; public static HashMap<String, Boolean> playerSettings = null;
public static ArrayList usageList = null; public static ArrayList<Integer> usageList = null;
public static ArrayList blackListPlace = null; public static ArrayList<Integer> blackListPlace = null;
public static ArrayList breakBlackList = null; public static ArrayList<Integer> breakBlackList = null;
public static ArrayList onPlaceAlert = null; public static ArrayList<Integer> onPlaceAlert = null;
public static ArrayList onUseAlert = null; public static ArrayList<Integer> onUseAlert = null;
public static ArrayList onBreakAlert = null; public static ArrayList<Integer> onBreakAlert = null;
public EssentialsProtect() public EssentialsProtect()
@ -65,9 +65,9 @@ public class EssentialsProtect extends JavaPlugin
logger.info("Loaded " + this.getDescription().getName() + " build " + this.getDescription().getVersion() + " maintained by " + AUTHORS); logger.info("Loaded " + this.getDescription().getName() + " build " + this.getDescription().getVersion() + " maintained by " + AUTHORS);
} }
public static boolean checkProtectionItems(ArrayList itemList, int id) public static boolean checkProtectionItems(ArrayList<Integer> itemList, int id)
{ {
return !itemList.isEmpty() && itemList.contains(String.valueOf(id)); return !itemList.isEmpty() && itemList.contains(id);
} }
@Override @Override

View file

@ -56,7 +56,7 @@ public class EssentialsProtectBlockListener extends BlockListener
return; return;
} }
if (!EssentialsProtect.onPlaceAlert.isEmpty() && EssentialsProtect.onPlaceAlert.contains(String.valueOf(item.getTypeId()))) if (EssentialsProtect.checkProtectionItems(EssentialsProtect.onPlaceAlert, id))
{ {
parent.alert(user, item.getType().toString(), "placed: "); parent.alert(user, item.getType().toString(), "placed: ");
} }
@ -192,13 +192,13 @@ public class EssentialsProtectBlockListener extends BlockListener
return; return;
} }
if(EssentialsProtect.breakBlackList.contains(String.valueOf(block.getTypeId())) && !user.isAuthorized("essentials.protect.exemptbreak")) if (EssentialsProtect.checkProtectionItems(EssentialsProtect.breakBlackList, block.getTypeId()) && !user.isAuthorized("essentials.protect.exemptbreak"))
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
if (!EssentialsProtect.onBreakAlert.isEmpty() && EssentialsProtect.onBreakAlert.contains(String.valueOf(block.getTypeId()))) if (EssentialsProtect.checkProtectionItems(EssentialsProtect.onBreakAlert, block.getTypeId()))
{ {
parent.alert(user, block.getType().toString(), "broke: "); parent.alert(user, block.getType().toString(), "broke: ");
} }

View file

@ -45,11 +45,11 @@ public class EssentialsProtectPlayerListener extends PlayerListener
} }
if (item != null && EssentialsProtect.checkProtectionItems(EssentialsProtect.usageList, item.getTypeId()) && !user.isAuthorized("essentials.protect.exemptusage")) if (item != null && EssentialsProtect.checkProtectionItems(EssentialsProtect.usageList, item.getTypeId()) && !user.isAuthorized("essentials.protect.exemptusage"))
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
if (user.isAuthorized("essentials.protect.admin")) if (user.isAuthorized("essentials.protect.admin"))
{ {
@ -61,7 +61,7 @@ public class EssentialsProtectPlayerListener extends PlayerListener
+ ownerName); + ownerName);
} }
} }
if (item != null && EssentialsProtect.onUseAlert.contains(String.valueOf(item.getTypeId()))) if (item != null && EssentialsProtect.checkProtectionItems(EssentialsProtect.onUseAlert, item.getTypeId()))
{ {
parent.alert(user, item.getType().toString(), "used: "); parent.alert(user, item.getType().toString(), "used: ");
} }