Profile cover photo
Profile photo
Scott Schultz (Slickriptide)
2,199 followers
2,199 followers
About
Scott's posts

If I'm developing a new backend, does the "under development" backend plug-in have to live in the backends folder in the Errbot distribution or is there a way to tell config.py to look in my local plug-ins directory?

I've got a question with a long setup, so please bear with me.

At the moment, I have a working bot. However, it does a lot of event-handling at the SleekXMPP level and is likely to need do a lot more. This has to do with special sub-stanzas that are being sent by the chat service. For instance, the <Presence> stanza can contain information about a player's graphical avatar, while the <Message> stanza can contain a <Channel> substanza that affects how a message is displayed to the recipient.

I am thinking that I would like to move all of the SleekXMPP code into a custom backend that is based on the XMPP backend. I wouldn't be changing the XMPP backend, rather I would be extending things like XMPPPerson() to include the avatar as part of the record of a "person". I would be modifying send_message() to take the channels into account, and so on.

Let's call this new backend PChat() (since that's what I called it, heh).

My issue is how do I communicate to a vanilla Errbot plugin that there is more data than what is defined in errbot.backends.base for objects like Person, Room, Presence, Message, and so on?

This is complicated by the existence of third-party plugin repositories. If someone using my bot wants to install a plugin from a Git repository, that extra plugin should be able to run without knowing or caring anything about the backend.

Message has the "extras" parameter, which could be sufficient for passing channel information up to the "user plugin" layer. Plugins that didn't know or care about channels could just ignore it and I can set appropriate defaults for channels that are not provided as part of an outgoing message.

Presence is murkier. There's no "extras" attribute on Presence to stuff additional information into. Likewise for Room, Person and the rest.

I guess my question is how do I "extend" the existing Errbot objects without breaking things for some other plugin that doesn't know about the extensions? Do I have to keep a separate storage area for the "extras" and my PChat-aware plugins have to know they should do a separate query of the backend for things like avatar or channel information?

Post has attachment
Hello, all.

Having run across this community semi-randomly, I thought you might be interested to hear about what I think is a novel use for Err. It's a work in progress at the moment, but I'm using Err as a platform to create a system to control one or several NPC characters in an online RPG environment.

The nutshell background - There was an online superhero RPG called City of Heroes a few years ago that was closed. Some folks studied the game client and figured out how to make it tick, but for various reasons they didn't want to out and out make an emulator. What they did instead, and recently released to the public, was build an interface that lets the old game client communicate with a standard XMPP server.

In effect, it turns the old City of Heroes game client into a 3D graphical chat room front end.

Having had some experience with IRC bots many years ago, I immediately got interested in experimenting with the capabilities that a chat bot might bring to table, especially if it could be turned into a an ersatz "Non Player Character" for role-playing purposes.

That led me to SleekXMPP and Errbot. With some help from the Paragon Chat developers and some other folks with the same idea to use SleekXMPP as the basis of a graphical bot, the initial steps have been completed.

ErrBot is able to manifest inside the game environment and respond to chat input from the game identically to how it does the same thing in a more conventional chat room environment.

This is just the tip of the iceberg. There' s a ton of work still to do as far as things like causing ErrBot's avatar to perform emotes, walk around, determine the identities of avatars that are "near me" and respond to them, etc...

What I like about ErrBot for this project is the ability to define different functions as discrete plugins and be able to load and unload them as needed. It's also pretty helpful to have interfaces like BotCmd already defined so that I can simply make a command and run with it instead of having to code all of the basic bot interfaces from scratch. Bsically, Err has the structure that I can use to turn it from into more than just a chat room bot. It potentially can become a NPC management platform that generates NPC's as needed to send players on "quests" or otherwise lead them through game-style RPG activities.

Anyway, I thought the novelty of it might amuse or intrigue some folks. If you're curious about the "game client as a chat front end" thing, just visit http://www.cohtitan.com and click on "Paragon Chat".
Photo

+Joe Philley  Is Ingress architected in a way that would allow it to be licensed as a platform for developing a spin-off game or an unrelated game using the same base location-based energy-gathering technology?

Doing businesz in #Chicago. Looking for recommendations for real Chicago style #pizza. Help me outn, plussers! #chicagopizza

Post has attachment
This 4H photo really made an impression on me.
Photo

Post has attachment
One of the stars of the show
Photo

Post has attachment
Sadly these rides just make me ill these days.
Photo

Post has attachment
Sno-cone +Krystyn Chong ?
Photo

Post has attachment
Mission accomplished!
Photo
Wait while more posts are being loaded