Skip to content

Commit 3bdbedd

Browse files
committed
Mod to fix discio problem (until the server is fixed)
1 parent fc3c593 commit 3bdbedd

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

build.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
<include name="org/gotti/wurmunlimited/mods/cropmod/**"/>
2121
</fileset>
2222
</jar>
23+
<jar destfile="mods/disciomod/disciomod.jar">
24+
<fileset dir="bin.ant">
25+
<include name="org/gotti/wurmunlimited/mods/disciomod/**"/>
26+
</fileset>
27+
</jar>
2328

2429
</target>
2530
<target name="compile">
@@ -48,5 +53,6 @@
4853
<delete file="modlauncher.jar"/>
4954
<delete file="mods/spellmod/spellmod.jar"/>
5055
<delete file="mods/cropmod/cropmod.jar"/>
56+
<delete file="mods/disciomod/disciomod.jar"/>
5157
</target>
5258
</project>

mods/disciomod.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
classname=org.gotti.wurmunlimited.mods.disciomod.DiscIOMod
2+
classpath=disciomod.jar
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.gotti.wurmunlimited.mods.disciomod;
2+
3+
import java.lang.reflect.Field;
4+
import java.lang.reflect.InvocationHandler;
5+
import java.lang.reflect.Method;
6+
import java.util.Properties;
7+
import java.util.logging.Level;
8+
import java.util.logging.Logger;
9+
10+
import org.gotti.wurmunlimited.modloader.ReflectionUtil;
11+
import org.gotti.wurmunlimited.modloader.classhooks.HookManager;
12+
import org.gotti.wurmunlimited.modloader.interfaces.Configurable;
13+
import org.gotti.wurmunlimited.modloader.interfaces.WurmMod;
14+
15+
import com.wurmonline.server.Server;
16+
17+
public class DiscIOMod implements WurmMod, Configurable {
18+
19+
private Logger logger = Logger.getLogger(this.getClass().getName());
20+
21+
@Override
22+
public void configure(Properties properties) {
23+
24+
logger.log(Level.INFO, "fix disc io problem");
25+
26+
HookManager.getInstance().registerHook("com.wurmonline.server.zones.Zones", "saveProtectedTiles", "()V", new InvocationHandler() {
27+
@Override
28+
public Object invoke(Object object, Method method, Object[] args) throws Throwable {
29+
Field lastResetTiles = ReflectionUtil.getField(Server.class, "lastResetTiles");
30+
ReflectionUtil.setPrivateField(Server.class, lastResetTiles, System.currentTimeMillis());
31+
return method.invoke(object, args);
32+
}
33+
});
34+
}
35+
}

0 commit comments

Comments
 (0)