Forums - Open Redstone Engineers
ChatNinja (IRC chatbot) - Printable Version

+- Forums - Open Redstone Engineers (https://forum.openredstone.org)
+-- Forum: Off-Topic (https://forum.openredstone.org/forum-4.html)
+--- Forum: Programming (https://forum.openredstone.org/forum-8.html)
+--- Thread: ChatNinja (IRC chatbot) (/thread-6189.html)



ChatNinja (IRC chatbot) - tokumei - 04-17-2015

A work-in-progress modular chatbot API. I plan to have a command system as well as an event handler for IRC messages such as PM, join, part, etc which one can develop plugins around. My personal bot will most likely have a custom conversation bot and some useful calculator functions. The code may be viewed at http://github.com/NonemuNinja/ChatNinja or you can see my fork (with some more recent commits) at http://github.com/AGausmann/ChatNinja


RE: ChatNinja (IRC chatbot) - tokumei - 04-18-2015

Here's a sneak peek of the user interface:

[redacted - obsolete]

I dunno if I will follow through with the UI. If I do, it will be 100% optional. There will also be a CLI to execute commands from.


RE: ChatNinja (IRC chatbot) - tokumei - 04-18-2015

Latest update: I've purged the code of all UI elements so I can focus on more important things such as events, commands, and plugins surrounding them.


RE: ChatNinja (IRC chatbot) - Nickster258 - 04-18-2015

This looks quite nice.


RE: ChatNinja (IRC chatbot) - tokumei - 04-20-2015

Update: The bot has a beta event scheduler now, but it still will do nothing if you try to run it Tongue


RE: ChatNinja (IRC chatbot) - tokumei - 05-06-2015

Update: AFAIK the bot is able to connect to IRC servers and auto-join channels upon connection. It still has no front-end interface; you must modify the properties file in order to change the settings.

It now outputs private messages and some other commands sent by the server to the console. However, I'm still working on the command, event, and plugin subsystems. The biggest task right now is segregating the API from the implementation.


RE: ChatNinja (IRC chatbot) - PabloDons - 05-07-2015

soo uh, what lang?


RE: ChatNinja (IRC chatbot) - tokumei - 05-07-2015

All changes so far have been pushed to the upstream tree. Currently, it will auto-connect, auto-join, and throw all events that have been created at appropriate times. I'm currently working on the command system, then plugins will come after.

It now has an API which is independent of the official implementation. This allows for other implementations of the API, and also provides a standard library for plugin development.

(05-07-2015, 08:49 AM)PabloDons Wrote: soo uh, what lang?

Java (you should see it in github repository stats)


RE: ChatNinja (IRC chatbot) - tokumei - 05-08-2015

I just added JavaDoc to the main repository, which will make it easier to contribute and develop plugins for the bot API. I plan on placing the generated docs at http://docs.nonemu.info/chatninja/. It should be automatically built once I have TeamCity up and running.


RE: ChatNinja (IRC chatbot) - tokumei - 05-09-2015

The command system is progressing well!!!!!!

It features a generated help page, a beta permissions system, and pre-packaged utility/administration commands.

The debut:

[Image: rxLZaxJ.png]

I'll work on finalizing permissions and adding more utilities. Next, I will work on plugins. After that, it's a long series of bug tests and optimizations.


RE: ChatNinja (IRC chatbot) - tokumei - 05-10-2015

Big update: The command system is now considered complete. It comes packaged with essential commands and the ability for the end user to create his own. Now he needs a stable way to do so - let's start developing the plugin system! Big Grin

(NOTE: Any and all parts of the bot API and implementation are subject to change. Many architectural changes were made in this update and many more will probably come with the development of the plugin system. Develop at your own caution!)


RE: ChatNinja (IRC chatbot) - tokumei - 05-11-2015

Okay, I've made a plugin loader that loads from the plugins/ directory. Instead of having a plugin.yml like Bukkit plugins, it uses a single entry in the JAR's manifest for the plugin class. Everything else is configured in code, including its name and the commands that it creates. Plugins are also allowed to load other plugins, which I may abstract into a dependency system.


RE: ChatNinja (IRC chatbot) - slugdude - 05-11-2015

(04-18-2015, 03:00 AM)NonemuNinja Wrote: [Image: OHYQy4b.png?1]

This looks seriously cool, more complete than any other bot I've seen.

Also +1 for Ubuntu

<3 Ubuntu.


RE: ChatNinja (IRC chatbot) - jxu - 05-12-2015

well that's because most bots don't have UIs, that would be a client then?


RE: ChatNinja (IRC chatbot) - tokumei - 05-12-2015

Not necessarily... That user interface was more of a graphical command line. Also, please note:

(04-18-2015, 07:35 PM)NonemuNinja Wrote: I've purged the code of all UI elements



slugdude Wrote:complete

It is far from complete. I've had to fully redesign its backend since that screenshot was taken.



A mini-update: The Bukkit API has been monumental in helping me develop the plugin system. It shares a very similar architecture to Bukkit plugins; however, they are loaded in a slightly different way. I plan on finalizing the plugin API over the next couple of days, then extensive bot testing will begin.


RE: ChatNinja (IRC chatbot) - Chibill - 05-12-2015

So bukkit is a good learning source for plugin systems!


RE: ChatNinja (IRC chatbot) - tokumei - 05-12-2015

It does have a great example of class loading from jars outside of the classpath.


RE: ChatNinja (IRC chatbot) - slugdude - 05-12-2015

(05-12-2015, 02:54 PM)NonemuNinja Wrote:
slugdude Wrote:complete

It is far from complete. I've had to fully redesign its backend since that screenshot was taken.

I didn't mean complete in terms of progress, I meant complete as in more features - a more complete feature palette.


RE: ChatNinja (IRC chatbot) - tokumei - 05-31-2015

It's been a loooong time since I've had a post-worthy update, but here it is: Plugin loading is working!
I've been sidetracked by a lot of other small details and problems that have arisen, but I've finally gotten the bot to load and run plugins from JAR files. This is a big milestone for the bot, but a lot of testing is left to make sure there are no issues with the code.

I've also started working on the official ORE integration plugin. It will allow players logged in to ORE servers to execute bot commands and will provide commands that may be useful for ORE members.


RE: ChatNinja (IRC chatbot) - fluffy406 - 06-01-2015

(05-31-2015, 07:33 PM)NonemuNinja Wrote: It's been a loooong time since I've had a post-worthy update, but here it is: Plugin loading is working!
I've been sidetracked by a lot of other small details and problems that have arisen, but I've finally gotten the bot to load and run plugins from JAR files. This is a big milestone for the bot, but a lot of testing is left to make sure there are no issues with the code.

I've also started working on the official ORE integration plugin. It will allow players logged in to ORE servers to execute bot commands and will provide commands that may be useful for ORE members.

when it gonna be finished Big Grin


RE: ChatNinja (IRC chatbot) - tokumei - 06-03-2015

I just released 1.0pre on the github page (http://github.com/NonemuNinja/ChatNinja/releases ). The code can be run and properly configured to connect to any IRC server, but there is no documentation as of yet.

A release date will be set once most of the bugs have been fixed. Full docs will definitely come with the 1.0 release, if not earlier.


RE: ChatNinja (IRC chatbot) - jxu - 06-07-2015

release

like anyone is going to use an irc client not made 5+ years ago


RE: ChatNinja (IRC chatbot) - tokumei - 06-07-2015

My goal is simply to make it adaptable to fit the needs of others, like every other branded project of mine. I really don't care if nobody else will use it; it's just what I choose to do because it's good practice.


RE: ChatNinja (IRC chatbot) - tokumei - 06-08-2015

I am now in the process of migrating everything to Maven, so it can be built by my new CI server and deployed at my Maven repository.