Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ClassPool classPool = HookManager.getInstance().getClassPool();
- String descriptor = Descriptor.ofMethod(CtClass.booleanType, new CtClass[]{});
- HookManager.getInstance().registerHook("com.wurmonline.server.items.Item", "checkDecay", descriptor, new InvocationHandlerFactory() {
- @Override
- public InvocationHandler createInvocationHandler() {
- return new InvocationHandler() {
- @Override
- public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
- Object returned = method.invoke(proxy, args);
- Item HoldItem = (Item)proxy;
- if (HoldItem.isHugeAltar()) {
- return false;
- }
- if (HoldItem.getQualityLevel() > 0.0f && HoldItem.getDamage() < 100.0f) {
- return false;
- }
- if (HoldItem.getOwnerId() == -10L) {
- if (HoldItem.hatching) {
- if (HoldItem.getTemplateId() == 805) {
- final IslandAdder adder = new IslandAdder(Server.surfaceMesh, Server.rockMesh);
- final Map<Integer, Set<Integer>> changes = adder.forceIsland(50, 50, HoldItem.getTileX() - 25, HoldItem.getTileY() - 25);
- if (changes != null) {
- for (final Map.Entry<Integer, Set<Integer>> me : changes.entrySet()) {
- final Integer x = me.getKey();
- final Set<Integer> set = me.getValue();
- for (final Integer y : set) {
- Players.getInstance().sendChangedTile(x, y, true, true);
- }
- }
- }
- } else if (HoldItem.getTemplateId() == 1009) {
- final TerraformingTask task = new TerraformingTask(0, (byte) 0, HoldItem.creator, 2, 0, true);
- task.setCoordinates();
- task.setSXY(HoldItem.getTileX(), HoldItem.getTileY());
- }
- }
- }
- return returned;
- }
- };
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement