Skip to content

Instantly share code, notes, and snippets.

@Joedobo27
Created April 28, 2017 23:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Joedobo27/463a01a1dc40c3a7532241f8a8a10c6d to your computer and use it in GitHub Desktop.
Save Joedobo27/463a01a1dc40c3a7532241f8a8a10c6d to your computer and use it in GitHub Desktop.
// **************
// List items to skip. Use numbers from com.wurmonline.server.items.ItemList
var exceptions = [];
// **************
var ItemTemplateFactory = Packages.com.wurmonline.server.items.ItemTemplateFactory;
var ReflectionUtil = Packages.org.gotti.wurmunlimited.modloader.ReflectionUtil;
var Class = Packages.java.lang.Class;
var Integer = Packages.java.lang.Integer;
var Logger = Packages.java.util.logging.Logger;
var logger = Logger.getLogger("com.joedobo27.scriptRunnerMods.remove-one-per-tile-restrictions");
function onItemTemplatesCreated() {
var itemTemplates = ItemTemplateFactory.getInstance().getTemplates();
var fieldOnePerTile = ReflectionUtil.getField(Class.forName("com.wurmonline.server.items.ItemTemplate"), "onePerTile");
var onePerTileCount = 0;
for (i = 0; i < itemTemplates.length; i++) {
if (exceptions.length >= 1 && isValueInArray(itemTemplates[i], exceptions)){
continue;
}
var isOnePerTile = ReflectionUtil.getPrivateField(itemTemplates[i], fieldOnePerTile);
if (isOnePerTile){
ReflectionUtil.setPrivateField(itemTemplates[i], fieldOnePerTile, false);
onePerTileCount ++;
logger.fine("The " + itemTemplates[i].getName() + " is no longer one per tile.");
}
}
logger.info("Item template's onePerTile field set to false for " + Integer.toString(onePerTileCount) + " items.");
}
function isValueInArray(value, array){
var valuePresent = false;
for(i = 0; i < array.length; i++){
if (array[i] == value){
valuePresent = true;
}
}
return valuePresent;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment