Posted January 12, 2017 We are not going to lie, we dislike this mod very much. We run a Roleplay server, we do events very regularly. Yes even Archery events. We give different rewards out for different events, this will mean no more archery event, no more spyglass rewards. These type of mods only benefit people with the knowledge to use them, those people dont need things to broaden the gap on newer players. Valiance and Kaylie. Share this post Link to post Share on other sites
Posted January 12, 2017 The mod would exist with or without me. I doubt I'm the only one who made this type of mod. As I'm sure we're all aware, bearmods is still available. There's no way to counteract it. The only thing we can do is decide whether or not they should be public. I lean on the side of making everything available to ensure a level playing field. Now that the mod is public, everyone has access to it, and the servers can be run with that in mind. It's when people have access to certain mods which utterly trivialize certain parts of the game when I begin to draw the line. Being able to spot treasure chests as soon as you're within 100 tiles. Knowing a unique location even if it's underground because you can see through walls. This mod is far from that line. It's a convenience, not a hack. In a perfect world, client hacks wouldn't be available in the first place. Problem is, we don't live in a perfect world. It would take a massive effort on behalf of the modding community and acceptance by the general public to implement a system whereby client hacks could be disabled. Even then, it wouldn't be foolproof. All you can do is accept the current state we're in and be content. 2 Share this post Link to post Share on other sites
Posted October 22, 2017 broken as of 1.5 javassist.CannotCompileException: [source error] Field pickDistance in com.wurmonline.client.renderer.gui.HeadsUpDisplay is private. at javassist.CtBehavior.setBody(CtBehavior.java:446) at javassist.CtBehavior.setBody(CtBehavior.java:412) at org.gotti.wurmonline.clientmods.rangefinder.RangeFinder.init(RangeFinder.java:105) at org.gotti.wurmunlimited.modloader.ModLoaderShared.lambda$loadModsFromModDir$6(ModLoaderShared.java:111) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.gotti.wurmunlimited.modloader.ModLoaderShared.loadModsFromModDir(ModLoaderShared.java:109) at org.gotti.wurmunlimited.clientlauncher.DelegatedLauncher.main(DelegatedLauncher.java:24) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at javassist.Loader.run(Loader.java:288) at org.gotti.wurmunlimited.clientlauncher.ClientLauncher.main(ClientLauncher.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.wurmonline.client.launcherfx.WurmMain.main(WurmMain.java:27) Caused by: compile error: Field pickDistance in com.wurmonline.client.renderer.gui.HeadsUpDisplay is private. at javassist.compiler.MemberCodeGen.isAccessibleField(MemberCodeGen.java:943) at javassist.compiler.MemberCodeGen.atFieldAssign(MemberCodeGen.java:799) at javassist.compiler.JvstCodeGen.atFieldAssign(JvstCodeGen.java:140) at javassist.compiler.CodeGen.atAssignExpr(CodeGen.java:776) at javassist.compiler.CodeGen.atStmnt(CodeGen.java:332) at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50) at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351) at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50) at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:292) at javassist.compiler.Javac.compileBody(Javac.java:223) at javassist.CtBehavior.setBody(CtBehavior.java:438) ... 25 more javassist.CannotCompileException: [source error] Field pickDistance in com.wurmonline.client.renderer.gui.HeadsUpDisplay is private. at javassist.CtBehavior.setBody(CtBehavior.java:446) at javassist.CtBehavior.setBody(CtBehavior.java:412) at org.gotti.wurmonline.clientmods.rangefinder.RangeFinder.init(RangeFinder.java:105) at org.gotti.wurmunlimited.modloader.ModLoaderShared.lambda$loadModsFromModDir$6(ModLoaderShared.java:111) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.gotti.wurmunlimited.modloader.ModLoaderShared.loadModsFromModDir(ModLoaderShared.java:109) at org.gotti.wurmunlimited.clientlauncher.DelegatedLauncher.main(DelegatedLauncher.java:24) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at javassist.Loader.run(Loader.java:288) at org.gotti.wurmunlimited.clientlauncher.ClientLauncher.main(ClientLauncher.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.wurmonline.client.launcherfx.WurmMain.main(WurmMain.java:27) Caused by: compile error: Field pickDistance in com.wurmonline.client.renderer.gui.HeadsUpDisplay is private. at javassist.compiler.MemberCodeGen.isAccessibleField(MemberCodeGen.java:943) at javassist.compiler.MemberCodeGen.atFieldAssign(MemberCodeGen.java:799) at javassist.compiler.JvstCodeGen.atFieldAssign(JvstCodeGen.java:140) at javassist.compiler.CodeGen.atAssignExpr(CodeGen.java:776) at javassist.compiler.CodeGen.atStmnt(CodeGen.java:332) at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50) at javassist.compiler.CodeGen.atStmnt(CodeGen.java:351) at javassist.compiler.ast.Stmnt.accept(Stmnt.java:50) at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:292) at javassist.compiler.Javac.compileBody(Javac.java:223) at javassist.CtBehavior.setBody(CtBehavior.java:438) ... 25 more Share this post Link to post Share on other sites
Posted October 22, 2017 In regards to the whole discussion of client-side "cheat mods"... I'm not much of a modder / programmer, so I may be suggesting something not technically possible. Couldn't someone write a mod that would communicate between server and client, and have the client report what mods are loaded? That way, the server could evaluate if any of the mods were on a blacklist (or more likely confirm that all mods are on a whitelist), and then refuse connection to anyone running unacceptable mods? In my mind, I have the idea of using the modloaders to allow the server to push down a package to the client (since I know that's already possible). The client package would generate hashes of all the loaded client mods, and send those hashes back to the server. The server, in turn, would have a list of accepted hashes. The reason I specifically say hashes is because if only file names were reported, someone with a little know-how could find out what filenames were accepted, and then merge / recompile a blacklisted mod into a whitelisted filename. I play exclusively single-player on my own machine, so I do see value in "cheat mods". But I do also see how they could be unbalancing in a server setting (regardless of paid server or event reward value). Maybe someone with more know-how could invest the time into something along the lines of this suggestion? Sorry if this the wrong place for this. Share this post Link to post Share on other sites
Posted October 22, 2017 9 minutes ago, Nikalus said: In regards to the whole discussion of client-side "cheat mods"... I'm not much of a modder / programmer, so I may be suggesting something not technically possible. Couldn't someone write a mod that would communicate between server and client, and have the client report what mods are loaded? That way, the server could evaluate if any of the mods were on a blacklist (or more likely confirm that all mods are on a whitelist), and then refuse connection to anyone running unacceptable mods? In my mind, I have the idea of using the modloaders to allow the server to push down a package to the client (since I know that's already possible). The client package would generate hashes of all the loaded client mods, and send those hashes back to the server. The server, in turn, would have a list of accepted hashes. The reason I specifically say hashes is because if only file names were reported, someone with a little know-how could find out what filenames were accepted, and then merge / recompile a blacklisted mod into a whitelisted filename. I play exclusively single-player on my own machine, so I do see value in "cheat mods". But I do also see how they could be unbalancing in a server setting (regardless of paid server or event reward value). Maybe someone with more know-how could invest the time into something along the lines of this suggestion? Sorry if this the wrong place for this. It's the wrong place, anyway it can be easily exploitable. Share this post Link to post Share on other sites
Posted January 2, 2018 Hi - can we get an update for this to the new client? Share this post Link to post Share on other sites
Posted January 16, 2018 Looking for help to update this - thank you Share this post Link to post Share on other sites
Posted January 30, 2018 https://www.dropbox.com/s/836q929i4q2xs5m/rangefinder-v3.zip?dl=0 Updated to WU 1.5+ 3 Share this post Link to post Share on other sites
Posted February 2, 2018 On 1/29/2018 at 11:35 PM, bdew said: https://www.dropbox.com/s/836q929i4q2xs5m/rangefinder-v3.zip?dl=0 Updated to WU 1.5+ Works like a charm Thank you Much Share this post Link to post Share on other sites
Posted April 9, 2018 (edited) WU 1.6 refuses to even go to the launcher with v3 EDIT: nvm, I already had rangefinder bundled with another mod Edited April 9, 2018 by Huntar Share this post Link to post Share on other sites