Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static boolean blockMove(Item source, Item target, Creature performer) {
- if (target.getTemplateId() == RequiemItemIds.WAGON_LOGGING_ID && source.getTemplateId() != ItemList.logHuge) {
- performer.getCommunicator().sendNormalServerMessage("Only felled trees can be put into a logging wagon.");
- return true;
- }
- return false;
- }
- // stuff in init below
- // block certain items from moving to another
- classPool.getCtClass("com.wurmonline.server.items.Item")
- .getMethod("moveToItem", "(Lcom/wurmonline/server/creatures/Creature;JZ)Z")
- .instrument(new ExprEditor() {
- boolean patched = false;
- @Override
- public void edit(MethodCall m) throws CannotCompileException {
- if (!patched && m.getMethodName().equals("getItem")) {
- m.replace("$_=$proceed($$); if (org.jubaroo.mods.requiem.items.ItemMod.blockMove(this, $_, mover)) return false;");
- Requiem.debug(String.format("Hooking Item.moveToItem at %d", m.getLineNumber()));
- patched = true;
- }
- }
- });
- HookManager.getInstance().registerHook("com.wurmonline.server.items.Item", "mayCreatureInsertItem", "()Z", new InvocationHandlerFactory() {
- @Override
- public InvocationHandler createInvocationHandler() {
- return new InvocationHandler() {
- @Override
- public Object invoke(Object object, Method method, Object[] args) throws Throwable {
- Item item = (Item) object;
- for (StructureTemplate template : Constants.structureTemplates) {
- if (item.getTemplateId() == template.templateID) {
- return item.getItemCount() < 1000;
- }
- }
- if (item.getTemplateId() == LoggingWagon.getId()) {
- return item.getItemCount() < 200;
- }
- return method.invoke(object, args);
- }
- };
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement