Plug-in system for Latikai's client

Forum for game modifications and custom clients.

Plug-in system for Latikai's client

Postby Kandarim » Wed Jun 15, 2016 10:09 pm

What it's all about

I have extended my client with a plug-in system which should allow all of you to build your own plug-ins to hook into the client (to some extent).
They are accessible under the Xtended menu (originally implemented by Ender).
They are typically limited to one-shot actions, although I'm sure people will find a way to leverage it for more, hmm, long-term benefit. Regardless, I've decided that I will publish this anyhow. Those that want to can always build bots in a purely private client anyway.


Using plugins
This part is simple! You download the plug-in and place it in ~/Salem/plugins.
I am planning to maintain a list of plug-ins on this first post of which I have personally verified the source code (not guaranteeing that it will do what it says, but guaranteeing that it won't do anything nasty).

hello world pluginhttps://github.com/DonnEssime/SalemFuelPlugin/raw/master/dist/SalemFuelPlugin.jar
All this plugin does is print a "hello world"-like message to the system log of the client. Intended as the starting point for your own plug-ins.
Github page: https://github.com/DonnEssime/SampleSalemPlugin
Direct link: https://github.com/DonnEssime/DonnEssime.github.io/raw/master/Salem/plugins/SamplePlugin.jar


pickup plugin
Implemented by me, this plug-in will right click the nearest forageable item. Intended as an example of how to build a plug-in based on the example.
Github page: https://github.com/DonnEssime/SalemPickupPlugin
Direct link: https://github.com/DonnEssime/DonnEssime.github.io/raw/master/Salem/plugins/PickupPlugin.jar


seller plugin
Implemented by me, this plug-in will left click all of the items in your main inventory exactly once, one every 150 milliseconds. This should relieve your wrists without setting an awkward peak load on the server.
Github page: https://github.com/DonnEssime/StallSellerPlugin
Direct link: https://github.com/DonnEssime/StallSellerPlugin/raw/master/dist/StallSellerPlugin.jar


frog/small kritter plugin
Implemented by me, this plug-in will perform a single rightclick on the closest small kritter in your neighbourhood. Should help with tunnel vision issues.
Github page: https://github.com/DonnEssime/SalemFrogPlugin
Direct link: https://github.com/DonnEssime/SalemFrogPlugin/raw/master/dist/FrogPlugin.jar


fuel filler plugin
Implemented by Chrumps, this plug-in will perform 10 rightclicks on the closest object that requires fuel (think smelter/oven/brazier/torchpost/...).
You are responsible for having the right fuel on hand. Note that it uses forced shift-clicks, so don't have singing old logs in your inventory when fueling fires, and the like.

Github page: https://github.com/DonnEssime/SalemFuelPlugin
Direct link: https://github.com/DonnEssime/SalemFuelPlugin/raw/master/dist/SalemFuelPlugin.jar


distiller plugin
This plug-in will automatically empty and fill distillers in the alchemy table you have open.

Github page: https://github.com/DonnEssime/DistillerPlugin
Direct link: https://github.com/DonnEssime/DistillerPlugin/raw/master/dist/DistillerPlugin.jar


Creating your own plug-ins
I have tried to make this as painless as possible, but unfortunately there are quite a few steps involved.
You will find a comprehensive guide in the README of the PickupPlugin git repository.
I have (against better habits ;) ) committed ALL of the changes from SampleSalemPlugin to SalemPickupPlugin in a single commit. You can view it here, to double check whether you have all changes. Everything is listed in the README, though.
Note that, through the "load" method, it is also possible for plug-ins to permanently influence client behaviour without ever being activated once.

Your turn
Now it's up to you!
Some extensions to my client I will make accessible as plug-ins rather than as full-fledged client extensions, depending on where they best fit. One hopeful dream is to, one day, have some kind of central plug-in list and a full updater GUI for both the client and any and all plug-ins you may enjoy. One day.
Last edited by Kandarim on Tue Jul 04, 2017 7:17 am, edited 9 times in total.
I have neither the crayons nor the time to explain it to you.
JC wrote:I'm not fully committed to being wrong on that yet.
User avatar
Kandarim
Customer
 
Posts: 5321
Joined: Mon Jan 21, 2013 4:18 pm

Re: Plug-in system for Latikai's client

Postby nico54k9 » Thu Jun 16, 2016 8:58 am

Awesome work Kandarim and a great idea.

I'd love to give it a go if i had the imagination to think of a plug in haha.
Still, hope to see some good ones from the public.
User avatar
nico54k9
 
Posts: 74
Joined: Thu Jun 20, 2013 11:18 pm
Location: Australia

Re: Plug-in system for Latikai's client

Postby Nsuidara » Thu Jun 16, 2016 11:19 am

@pickup plugin, how work ?
mean - is pick up (cheat) or other ?
\(*o*)\ Praying in the Marp Church may reduce the time for update /(*o*)/
User avatar
Nsuidara
Customer
 
Posts: 1995
Joined: Fri Aug 17, 2012 11:50 pm
Location: Poland

Re: Plug-in system for Latikai's client

Postby Kandarim » Thu Jun 16, 2016 1:00 pm

you just press the button and it right clicks the closest item. You can find it, like any other plugins, under the XTended menu (with the timers and so on).
I have neither the crayons nor the time to explain it to you.
JC wrote:I'm not fully committed to being wrong on that yet.
User avatar
Kandarim
Customer
 
Posts: 5321
Joined: Mon Jan 21, 2013 4:18 pm

Re: Plug-in system for Latikai's client

Postby Kralith » Thu Jun 16, 2016 1:49 pm

Okay, this sounds very good.... but....

Whats the limits of this pluginsystem?
How we can prevent that this system will abused for fights, means too powerful plugins that is near to be cheating or botting?

Are there a implemented system that prevent some actions?

Okay, i have overseen the hiding text in first section. But still the questions stay the same.
Salem Wiki (PM me if you need help with editing)
Report corrections and new things here.
-----------------------------------------------------------------------
User avatar
Kralith
Customer
 
Posts: 1033
Joined: Sun Dec 16, 2012 2:14 pm
Location: Germany

Re: Plug-in system for Latikai's client

Postby Kandarim » Thu Jun 16, 2016 2:32 pm

Kralith wrote:Whats the limits of this pluginsystem?

Your imagination!

Kralith wrote:How we can prevent that this system will abused for fights, means too powerful plugins that is near to be cheating or botting?

We can't. But this is a void argument, because we can't stop the same from happening without the plug-in system: people that can/want to implement 'powerful plugins' can do so in their own private client too, anyhow.

Kralith wrote:Are there a implemented system that prevent some actions?

Such as? Plug-ins are mainly intended at one-shot actions (like the pick-up closest item). Permanent changes to the client are possible to some extent, but there aren't particularily many hooks in the client to make this easy.
I have neither the crayons nor the time to explain it to you.
JC wrote:I'm not fully committed to being wrong on that yet.
User avatar
Kandarim
Customer
 
Posts: 5321
Joined: Mon Jan 21, 2013 4:18 pm

Re: Plug-in system for Latikai's client

Postby Forungi » Thu Jun 16, 2016 2:55 pm

Great initiative Kandarim!

I'll make sure to dust off the old Java knowledge and make something useful.
Forungi
 
Posts: 753
Joined: Tue Jun 23, 2015 3:31 pm

Re: Plug-in system for Latikai's client

Postby Heffernan » Mon Jun 20, 2016 5:31 pm

great, hope this makes everything easier, not sure of someone working on similar stuff already but would someone make a script that whenever a private chat opens a prerecorded text is displayed to them? id pay fror such a thing.
User avatar
Heffernan
 
Posts: 8564
Joined: Mon Sep 08, 2014 3:07 pm
Location: Marps Closet

Re: Plug-in system for Latikai's client

Postby Darwoth » Mon Jun 20, 2016 5:57 pm

and this is how pvp on most UO emulators got ruined overnight once everyone figured out how to make focus fire plug ins and started multiboxing 4 - 5 alts with a sync drop between them to one shot everyone. salem really needed this.


Image
Image
User avatar
Darwoth
 
Posts: 8035
Joined: Sun Aug 12, 2012 5:11 pm
Location: Everywhere

Re: Plug-in system for Latikai's client

Postby Taipion » Mon Jun 20, 2016 6:28 pm

For Eclipse:

- Create a new Java Project
- Get the project (as zip or what you prefer) from git
- Import the project as Archive File (zip) or Project (unpacked) into the project you just created
- right-click the build.xml (ant symbol) and run as / Ant build

In case it (ant) says your JAVA_HOME is pointing at a wrong direction, don't mess with your environmental variables, simply go to (in eclipse) windos/preferences/java/installed JREs replace the (probably) JRE there with a JDK.
Need something? Here is my Shop (Including some useful info for new/returning players at the bottom of the first post)
Taipion
 
Posts: 2659
Joined: Fri Mar 08, 2013 4:12 pm

Next

Return to Artifice & Arcana

Who is online

Users browsing this forum: No registered users and 6 guests