Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@Joedobo27
Created April 28, 2017 23:15
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/03fe564e54d630eec0142d1079e06cb8 to your computer and use it in GitHub Desktop.
Save Joedobo27/03fe564e54d630eec0142d1079e06cb8 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-inside-outside-limits");
function onItemTemplatesCreated() {
var itemTemplates = ItemTemplateFactory.getInstance().getTemplates();
var fieldOutsideOnly = ReflectionUtil.getField(Class.forName("com.wurmonline.server.items.ItemTemplate"), "outsideonly");
var fieldInsideOnly = ReflectionUtil.getField(Class.forName("com.wurmonline.server.items.ItemTemplate"), "insideOnly");
var outsideCount = 0;
var insideCount = 0;
for (i = 0; i < itemTemplates.length; i++) {
if (exceptions.length >= 1 && isValueInArray(itemTemplates[i], exceptions)){
continue;
}
if (itemTemplates[i].isOutsideOnly()){
ReflectionUtil.setPrivateField(itemTemplates[i], fieldOutsideOnly, false);
outsideCount ++;
logger.fine("The " + itemTemplates[i].getName() + " is no longer outside use only.");
}
var isInsideOnly = ReflectionUtil.getPrivateField(itemTemplates[i], fieldInsideOnly);
if (isInsideOnly){
ReflectionUtil.setPrivateField(itemTemplates[i], fieldInsideOnly, true);
insideCount ++;
logger.fine("The " + itemTemplates[i].getName() + " is not longer inside use only.");
}
}
logger.info("Item template's outsideonly field set to false for " + Integer.toString(outsideCount) + " items.");
logger.info("Item template's insideOnly field set to false for " + Integer.toString(insideCount) + " 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