[Release] Relay - email and sms messages with API

Overview
An email and sms messaging plugin and API.

Relay works by using javax.mail to send emails. Most cellphone companies provide an email address that can receive messages on, these show as sms messages. Relay saves all contacts internally and keeps all users contact information encrypted. Note: although Relay keeps your contact information encrypted, since this project is open source, it would not take much to break the encryption, so be careful.

Once a user has registered a contact method, they will receive a verification email containing a 4 digit code. This code must be entered on the server in order to activate that users contact information. Once verified they can receive messages on that account.

Relay stores informaiton per-server, so users will have to setup their contact information on any server that they would like to receive messages from.

Features

  • Send SMS or Email messages with one command (in game or through the console)!
  • Capable of sending HTML emails using Mustache templating engine.
  • Includes RelayService and TemplatingService, so other plugins can send messages.
  • Built in support for Mandrill ( recommended)!

Commands

  • /register email <address>
  • /register phone <number>
  • /register activate <code>
  • /unregister [contactMethod]
  • /relay carriers
  • /relay account
  • /relay edit <contactMethod>
  • /relay send [[-p] [player]] [[-t] [template]] <message>
  • /relay sendall [[-t] [template]] <message>

Repository
View the code, fork it, use it, and read more at Relay’s Github repository.

Video
The video below may better show off what Relay can do.

Download
You can download Relay from the releases page.

Updates

  • v1.0.2-3.0.0
    • Added support for Sponge API v3.0.0
    • Fixed a bug: deleting one account, deletes all accounts for that player.

API
You can access relay’s sendMessage() functions from the RelayService. Although the API is ready, the documentation is not. I will update this post when I have more documentation written.

Coming Soon

  • Email Groups

  • Secondary plugin for setting up friends lists: receive notifications when your friends login to the server.

  • All suggestions welcome!

13 Likes

Does this support SSL?

@FerusGrim Sure does. In fact Mandrill does that out of the box.

2 Likes

I’m seriously loving these tech demos that you’ve been making. I feel like this is exactly the sort of thing that we should be showing off in our next State of Sponge. Keep it up! :blush:

5 Likes

Thanks @Owexz I appreciate it! I just hope that people can learn from my code, and enjoy the plugins.

1 Like

That demo is the most beautiful thing I’ve ever seen. And your list system is magnificent as ever.

1 Like

Another masterpiece from you. The things you would have never imagined doing in chat is now possible.

2 Likes

This brings a whole new level to spambotting.

3 Likes

Well I hope not! Blacklist support will be part of the next release. The barebones of blacklisting is already built out.

You were faster than me :wink:

That’s a nice addition for all server mail and msg plugins.

2 Likes

This could help with /reportaproblem kind of commands. If it texted a list of people who were admins, that would be cool.

1 Like

Awesome work @mmonkey!

1 Like

Thanks @N00bTaco, I expect a full write up on the blog :stuck_out_tongue_winking_eye:

2 Likes

Oh cool, I’d “love” to get text msgs saying x player has stolen my diamonds when I gave him more than more diamond on accident.

/endrant

Anyways cool plugin, I can’t wait to make this my “get all the complaints” plugin for when I can’t get on. (probably going to have it send emails, and let my admins text me when I’m needed)

Or you restrict this command to moderators only.

When groups are implemented, the idea I can add group blacklisting/whitelisting as well.

1 Like

Wow this is great, I was going to write my own, but it looks like I don’t have to!

2 Likes

Speaking of, I’ve never really understood the whole reason of taking a group.

Can’t you just assign the group a permission: my.server.group and have a configuration setting in the plugin where the user can define what permission to check?

That way you don’t need to worry about groups, or anything, just match against that permission and let the permission plugin handle the complexity.

I am not quite following your logic here, I think we are talking about 2 different types of groups. I am planning on adding email groups. You setup and admin group, builders group, PVP group… etc. Then you can send a message to the whole group instead of typing every player’s name in the send command.

The group blacklisting would make it so members of the PVP group aren’t allowed to send a message to members of the admin group or whatever is set up. But they can still message each other, and admins can message anyone or any group.

1 Like

Ah. ok, yeah I was getting confused with groups as in permissions, not groups as in Distribution List