H&H Groovy Maid

Forum for alternative clients, mods & discussions on the same.

Moderator: Phades

User avatar
Oddity
Posts: 1983
Joined: Sun Jun 20, 2010 12:04 am
Location: BC, Canadia

Re: H&H Groovy Maid

Post by Oddity »

Momoka wrote:
Jester87 wrote:
sabinati wrote:it's a scripting engine that runs over any client
I guess thats somewhat useful. Although, the ark.su client works just fine imho.
It works. It's also an awful mess of methods and ugly hacks.
And doesn't let me use lots of nice Ender's features, like indicating draw distance in the mini-map and the new chat.
jadamkaz wrote:ah i remember my run in with odditown they are good ppl im sure the only reason they killed ME is because they are troll hunters and i was a troll
Uberknot
Posts: 3
Joined: Wed Nov 03, 2010 4:32 am

Re: H&H Groovy Maid

Post by Uberknot »

Code: Select all

//CHOP THE MOTHERFUCKER
	maid.doRightClick(target); 
	Object fmenu = maid.waitForFlowerMenu();
	String[] commandlist = maid.doList(fmenu);
	maid.doSelect(fmenu, commandlist[0]);
	//WAIT DOESN'T WORK ON TREES. WORKAROUND HERE
	maid.waitForTask();

Maid doesn't wake from waiting when cutting down a tree.
mvgulik
Posts: 4096
Joined: Fri May 21, 2010 2:29 am

Re: H&H Groovy Maid

Post by mvgulik »

(EgoSearch linkup)

Interesting ... Might get me playing the game a bit more.

Momoka.
PS: Bug reports. Are your preferring them here in this topic? Or is the google.code tracker ok to? (unless you like to keep that one clean.)
(Just asking in advanced. Got to dig in into Your Maid, and Goovy for that matter, first of course.)
User avatar
Momoka
Posts: 46
Joined: Sun Jul 17, 2011 6:21 am

Re: H&H Groovy Maid

Post by Momoka »

Uberknot wrote:

Code: Select all

//CHOP THE MOTHERFUCKER
	maid.doRightClick(target); 
	Object fmenu = maid.waitForFlowerMenu();
	String[] commandlist = maid.doList(fmenu);
	maid.doSelect(fmenu, commandlist[0]);
	//WAIT DOESN'T WORK ON TREES. WORKAROUND HERE
	maid.waitForTask();

Maid doesn't wake from waiting when cutting down a tree.
Hmm, to chop:

Code: Select all

def target;

// I can't remember the name of the tree here. Do a doAreaList to find the resource names.
while((target = maid.doAreaFind(30, "firtree"))) {
    // right click
    maid.doRightClick(target);

    // server sends the menu
    flowerMenu = maid.waitForFlowerMenu();

    // we select chop here
    maid.doSelect(flowerMenu, "Chop");

    // wait for the chop to finish
    maid.waitForTask();

    // Get the resulting stump, or it will mess with pathing.
    maid.doAreaFind(30, "stump");

    // server response
    flowerMenu = maid.waitForFlowerMenu();

    // Remove stump
    maid.doSelect(flowerMenu, "Remove");

    // Wait for removal to finish.
    maid.waitForTask();
}
Weird, I am going to test it when the server comes back. waitForTask waits for the sandclock to disappear. Maid is supposed to wake up.

Bug reports could be here or there. Though there I get an email so it may get a faster response.
mvgulik
Posts: 4096
Joined: Fri May 21, 2010 2:29 am

Re: H&H Groovy Maid

Post by mvgulik »

Question:
Trying "Groovy Maid" on a default client setup. It tagging itself as Ender client (to) in the title bar.
Wondering what parts of Ender you are including in your "Groovy Maid" ?.
(Was hooping to be able to run a lean client with your "Groovy Maid", as my system is not that high grade. Ender client run's ok, but it can be a little heavy at times -> related to my system of course.)

Issue: ?
"Groovy Maid" seems to not like the latest 'haven.jar' version.
File: haven.jar, Size: 750082, date: (Don't know), MD5: dfd5faabd45863b674ad77cbc9d9a9e0
When using that latest 'haven.jar' instead of the one from your 'lib' folder it triggers a SecurityException error.

Code: Select all

java -cp groovy-1.7.5.jar -Xms256m -Xmx512m -jar maid.jar moltke.seatribe.se
Exception in thread "main" java.lang.SecurityException: class "haven.MainFrame"'s signer information does not match signer information of other classes in the same package
        at java.lang.ClassLoader.checkCerts(Unknown Source)
        at java.lang.ClassLoader.preDefineClass(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
User avatar
Momoka
Posts: 46
Joined: Sun Jul 17, 2011 6:21 am

Re: H&H Groovy Maid

Post by Momoka »

I am not using anything from ender. I merely check once for a certain variable that makes Ender's incompatible (UI.instance). Strange for it to show Ender's. Maybe because I compiled the release with Ender's. Maybe I will switch to normal.

The second issue is because the original binary haven.jar is signed and forbids the injection of classes I am doing.

Just download the source from

git://github.com/dolda2000/haven-client.git

And compile a new haven.jar which is going to be unsigned.
mvgulik
Posts: 4096
Joined: Fri May 21, 2010 2:29 am

Re: H&H Groovy Maid

Post by mvgulik »

Momoka wrote:The second issue is because the original binary haven.jar is signed ...
Erm ... right, forgot about jar META data. ... fixed. (no more Ender text in title bar either. ;) )
Thanks.

... (compiling (Java/C/etc) and me ... :( ) ...
mekoon
Posts: 2
Joined: Mon Jul 25, 2011 5:59 pm

Re: H&H Groovy Maid

Post by mekoon »

How can i check if my char is moving? And how wait to finish moving smarter then while(...) { sleep() }

UPD: dirty hack
in Maid.java add

Code: Select all

public boolean isMoving(Gob g) {
    if (g.getattr(Moving.class) != null) {
        return true;
    }
    return false;
}
in script:

Code: Select all

while(maid.isMoving(maid.getPlayer())) {
	Thread.sleep(30)
}
User avatar
ArvinJA
Posts: 1255
Joined: Sun Mar 20, 2011 1:02 pm
Location: Sweden

Re: H&H Groovy Maid

Post by ArvinJA »

Momoka wrote: = Features =
- Runs over any client that respects the original client interfaces.
That's neat, but how exactly does it work? I guess it would have to override some of the native methods in the client somehow to make botting possible. Does it only override them for maid and keep the client-code separated or what?
The low life has lost its appeal
And I'm tired of walking these streets
To a room with its cupboards bare
User avatar
EnderWiggin
Posts: 1156
Joined: Sat Mar 20, 2010 8:23 pm

Re: H&H Groovy Maid

Post by EnderWiggin »

It does it in a very elegant way - it works like sort of a proxy between server and actual client. It substitutes UI class of a client, which is responsible for UI to server communications (actually, all player interactions). Then it propagates server events to client UI class and user actions to server. Client does not even know about this maid.

Return to “The Wizards' Tower”