Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. public static boolean blockMove(Item source, Item target, Creature performer) {
  2. if (target.getTemplateId() == RequiemItemIds.WAGON_LOGGING_ID && source.getTemplateId() != ItemList.logHuge) {
  3. performer.getCommunicator().sendNormalServerMessage("Only felled trees can be put into a logging wagon.");
  4. return true;
  5. }
  6. return false;
  7. }
  8.  
  9.  
  10. // stuff in init below
  11.  
  12.  
  13. // block certain items from moving to another
  14. classPool.getCtClass("com.wurmonline.server.items.Item")
  15. .getMethod("moveToItem", "(Lcom/wurmonline/server/creatures/Creature;JZ)Z")
  16. .instrument(new ExprEditor() {
  17. boolean patched = false;
  18.  
  19. @Override
  20. public void edit(MethodCall m) throws CannotCompileException {
  21. if (!patched && m.getMethodName().equals("getItem")) {
  22. m.replace("$_=$proceed($$); if (org.jubaroo.mods.requiem.items.ItemMod.blockMove(this, $_, mover)) return false;");
  23. Requiem.debug(String.format("Hooking Item.moveToItem at %d", m.getLineNumber()));
  24. patched = true;
  25. }
  26. }
  27. });
  28.  
  29. HookManager.getInstance().registerHook("com.wurmonline.server.items.Item", "mayCreatureInsertItem", "()Z", new InvocationHandlerFactory() {
  30.  
  31. @Override
  32. public InvocationHandler createInvocationHandler() {
  33. return new InvocationHandler() {
  34. @Override
  35. public Object invoke(Object object, Method method, Object[] args) throws Throwable {
  36. Item item = (Item) object;
  37.  
  38. for (StructureTemplate template : Constants.structureTemplates) {
  39. if (item.getTemplateId() == template.templateID) {
  40. return item.getItemCount() < 1000;
  41. }
  42. }
  43. if (item.getTemplateId() == LoggingWagon.getId()) {
  44. return item.getItemCount() < 200;
  45. }
  46. return method.invoke(object, args);
  47. }
  48. };
  49. }
  50. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement