TextPlayer
Version 2.4.0
NOTE: This plugin requires you have Vault enabled on your server
WARNING: When setting up the email address in the email.properties file, use an account that is not used for anything else (such as personal emails) as it will delete all messages after they are read by the plugin.
This plugin allows you to always be connected with your server, You can receive many types of alerts and even execute server commands through text message.
If the default port does not work, try the following to see if one does work.
SMTP Ports
- 25
- 587
- 465
Features:
- Supports all major Economies and Permission Plugins thanks to Vault
- Configurable properties
- Server can send a mass text to all Users
- Use your phone number or email
- Send texts back to the server to chat or run commands
- Retrieve player list by texting "pl" to the server
- Many popular Cell phone providers are supported:
- List users who added their numbers
- Limit which players can text you by using a whitelist
- Anti-spam feature (limit max amount of texts received each day)
- Numbers/email addresses cannot be seen in game (for privacy reasons)
- Be alerted by text message when a player Logs on
- Be alerted by text message when the Server comes online/goes offline (also triggered on Server reload)
- Be alerted when a player places fire or tnt
- Be alerted when errors are posted to the server log
- Set emails to come from a custom email address
- Encrypted data
Permission Nodes:
- textplayer.text = Needed to send a Text Message
- textplayer.textadmin = Needed to send a Text Message to an admin
- textplayer.use = Needed to set your number and receive texts (/text set, /text list, /text limit, /text enable, /text disable)
- textplayer.watch.server = Needed to receive a text when the Server comes online (/text watch server)
- textplayer.watch.player = Needed to receive a text when a Player comes online (/text watch player)
- textplayer.watch.everyplayer = Needed to receive a text when any other Player comes online (/text watch player *)
- textplayer.watch.item = Needed to receive a text when an itemis placed (/text watch item)
- textplayer.watch.word = Needed to receive a text when a word is spoken (/text watch word)
- textplayer.watch.errors = Needed to receive a text when errors are printed to the server log
- textplayer.listusers = Needed to list all of the Users who can receive texts (/text list users)
- textplayer.listadmins = Needed to list all of the Admins who can receive texts (/text list admins)
- textplayer.free = Send messages free of charge (Minecraft money, not real money. Messages never cost real money to send)
- textplayer.check - Allows the Player to tell the TextPlayer plugin to check for new mail (/text check)
- textplayer.admin = Distinquishes the Player as an admin. Needed to text commands to the Server
Commands:
Both in-game commands and text message commands can be found at the Commands Page
Terms of Use:
The Terms of Use can be read at www.codisimus.com/terms
@GoldBattle
Try using the Reccomended build (Click here to download) Does that work - It works for me. Try '/text clear', then try again with the '/text set'
Hello, I seem to be running into some problems with confirming an email address. Here is the console output. I tried several different ways to reply 'enable' to the message. I Only did the /text set email cmd once. This was on a test server that only has vault and textplayer.
http://dev.bukkit.org/paste/5022/
It seems to be sending the confirmation email in a loop. What am I doing wrong??
Thanks! -Patrick
Extra Sms Gateways:
(add to your sms.gateways file (optional))
aircel=<number>@aircel.co.in
airtel=<number>@airtellkk.com
alaskacommunications=<number>@msg.acsalaska.com
aliant=<number>@sms.wirefree.informe.ca
alltel=<number>@sms.alltelwireless.com
ameritech=<number>@paging.acswireless.com
aql=<number>@text.aql.com
bellsouth=<number>@bellsouth.cl
bluegrass=<number>@sms.bluecell.com
bluesky=<number>@psms.bluesky.as
boostmobile=<number>@myboostmobile.com
cellcom=<number>@cellcom.quiktxt.com
cellulaone=<number>@mobile.celloneusa.com
cellularsouth=<number>@csouth1.com
centennialwireless=<number>@cwemail.com
chinamobile=<number>@139.com
clarobrazil=<number>@clarotorpedo.com.br
csl=<number>@mgw.mmsc1.hkcsl.com
edgewireless=<number>@sms.edgewireless.com
esendexuk=<number>@echoemail.net
esendexusa=<number>@echoemail.net
esendexspain=<number>@esendex.net
freebiesms=<number>@smssturen.com
googlevoice=<number>@txt.voice.google.com
o2usa=<number>@mobile.celloneusa.com
tmobilegermany=<number>@t-mobile-sms.de
tmobilenetherlands=31<number>@gin.nl
vodafonespain=0<number>@vodafone.es
vodafonenewzealand=<number>@mtxt.co.nz
willcomjapan=<number>@pdx.ne.jp
Oh, so stupid! It didn't work so I deleted whole folder and let it regenerate again but forgot to change it! Thanks, and sorry for stupid mistake.
It works! :)
Would you like us (HyperBros200) to do a more recent plugin showcase? And installation tutorial for Mac?
A new error, but nothing too bad! I can send stuff to my email now flawlessly, but I can't send commands to the server (is that because only phones, not email?) and my log keeps going crazy!
I have set check email to 60, so thats probably why I am getting this error every 60 seconds:
18:32:32 [INFO] [TextPlayer] Could not read incoming mail! 18:32:32 [SEVERE] javax.mail.AuthenticationFailedException: [ALERT] Too many simultaneous connections. (Failure) 18:32:32 [SEVERE] at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665) 18:32:32 [SEVERE] at javax.mail.Service.connect(Service.java:317) 18:32:32 [SEVERE] at com.codisimus.plugins.textplayer.TextPlayerMailer.checkMail(TextPlayerMailer.java:169) 18:32:32 [SEVERE] at com.codisimus.plugins.textplayer.TextPlayerMailer$3.run(TextPlayerMailer.java:448) 18:32:32 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34) 18:32:32 [SEVERE] at java.lang.Thread.run(Thread.java:680) 18:33:33 [INFO] [TextPlayer] Could not read incoming mail! 18:33:33 [SEVERE] javax.mail.AuthenticationFailedException: [ALERT] Too many simultaneous connections. (Failure) 18:33:33 [SEVERE] at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665) 18:33:33 [SEVERE] at javax.mail.Service.connect(Service.java:317) 18:33:33 [SEVERE] at com.codisimus.plugins.textplayer.TextPlayerMailer.checkMail(TextPlayerMailer.java:169) 18:33:33 [SEVERE] at com.codisimus.plugins.textplayer.TextPlayerMailer$3.run(TextPlayerMailer.java:448) 18:33:33 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34) 18:33:33 [SEVERE] at java.lang.Thread.run(Thread.java:680)
@domdomegg
You would be getting an error on startup, "[TextPlayer] Please create email account for email.properties". Watch the video if you need help setting up the email.properties file
In 1.4.2, running bukkit version 'git-Bukkit-1.2.4-R1.0-b2126jnks'
When I type '/text set email *, the console logs:
09:13:40 [SEVERE] javax.mail.internet.AddressException: Illegal address in string ``'' 09:13:40 [SEVERE] at javax.mail.internet.InternetAddress.<init>(InternetAddress.java:114) 09:13:40 [SEVERE] at com.codisimus.plugins.textplayer.TextPlayerMailer$1.run(TextPlayerMailer.java:126)
Nothing in my email account...
I tried the command again, but it told me 'That is already your current number'
Any fix?
Also, it might be that my email has an underscore ( _ ), so maybe it can't read that?
Thanks
@scottjl
Thanks for finding this... fixed in 1.4.2
@kaveet
@eatmybiglazer
Try the new version (1.4.2) as I cleaned up the debug so it should help find the problem.
/text watch server doesn't seem to help. it only displays the help pages. /text unwatch server does seem to work correctly though.
@Codisimus
Something different happened this time, it seemed to get my reply, then get an error and throw it out. I got this right after I had done /text set and replied "enable." Here's the log.
[TextPlayer] Reply 'enable' to link this number to Kaveet
.
21:10:28 [INFO] 250 2.0.0 OK 1333332631 j10sm15755244oba.4
21:10:28 [INFO] QUIT
21:10:28 [INFO] 221 2.0.0 closing connection j10sm15755244oba.4
21:10:28 [INFO] [TextPlayer] Message Sent!
21:10:48 [INFO] [TextPlayer](Debug) Message received from: Kaveet
21:10:48 [INFO] [TextPlayer] Error reading email, Message thrown out
21:10:48 [SEVERE] java.lang.StringIndexOutOfBoundsException String index out of
range: 1
21:10:48 [SEVERE] at java.lang.String.substring(Unknown Source)
21:10:48 [SEVERE] at com.codisimus.plugins.textplayer.TextPlayerMailer.cle
anUp(TextPlayerMailer.java:457
21:10:48 [SEVERE] at com.codisimus.plugins.textplayer.TextPlayerMailer.acc
ess$100(TextPlayerMailer.java:17
21:10:48 [SEVERE] at com.codisimus.plugins.textplayer.TextPlayerMailer$2$1
.run(TextPlayerMailer.java:225
I should note that earlier in the log I got something to do with failing to save.
@kaveet
My plugin should be able to read that email correctly. however, it doesn't seem to even be getting to the point that it recognized that a new email has been received. I have done some testing, try changing the CheckMailInterval to 0 and let me know if that changes anything.
@Codisimus
Tried the dev build, completely deleting the lib and TextPlayer folders. Still the exact same error. This may be a bit presumptuous, but could it possibly be the format in which the text message is sent to the gmail server? I use T-Mobile US and this is what I see in the body of the "enable" reply message:
Enable
------------------
MYEMAIL@gmail.com / / [TextPlayer] Reply 'enable' to link this number to Kaveet
I assume you have code in place to remove the extra info at the bottom, as to give the server a raw input, but I feel something is conflicting. Thanks for putting in effort to solve our problems.
@eatmybiglazer
@kaveet
Try the dev build, I updated the mail.jar so you need to delete the old one from the lib folder and it will copy over the new one. This may be why it isn't working for you two.
@Codisimus
I did all you said, changing my IMAP, turning on debugging, and trying an email, but I'd appreciate it if you could tell me what my debug means. All is a-ok until the end bit:
19:37:43 [INFO] * BYE LOGOUT Requested A3 OK 73 good day (Success)
19:37:43 [INFO] DEBUG: IMAPStore connection dead 19:37:43 [INFO] DEBUG: IMAPStore cleanup, force false 19:37:43 [INFO] DEBUG: IMAPStore cleanup done
@Codisimus
Ah, I have it throwing up when sending a text, but nothing when I reply. I would assume that there would be an error if IMAP is unable to connect due to endpoint or auth issues... using gmail as recommended.
Once I reset the text number it started throwing out the IMAP stuff too. Looks like it logs in, authenticates, and calls a logout. I can send you the details in a message.
[EDIT] Poked around in source and decided to search my log for "Message Received From:" which appeared nowhere. I assume getmessagecount is either null or returning 0...
@eatmybiglazer
set NotifyInServerLog to true as well (though they should be separate). I am not using a regex, You can look at the source on github but let me warn you that the Mailer class is a mess.
If it is not spitting out anything, what am I missing? As far as the match of the enable reply, are you using a regex? I'd be happy to poke around and see how I can help and submit a pull if I am of any use. I have email and config.properties set to Debug=True (also tried true in case it's a caps issue)
[edit] as a summary of the current behavior: During the server startup TextPlayer shows only these lines:
TextPlayer: Enabling TextPlayer v1.4.1
TextPlayer: Checking for new mail...
CONSOLE: TextPlayer 1.4.1 is enabled!
No other mentions of textplayer in the console window.
@eatmybiglazer
The debug should spit out a bunch of crap when you send a text to the server.
@kaveet
@eatmybiglazer
it is rather difficult to clean up text messages to make sure that I get only what I want. It is impossible for me to test anything but my own carrier (verizon). All I can say is run the debug mode which will show you why the confirmation text didn't work. if you send me that information (you may want to blank out your personal information first) then I could try to add support for your carrier. Note that even though we may both have Verizon, we still have different phones so the texts are not identical.
Thanks, codismimus. I actually copied the mail.jar to the libs folder as kaveet did, was able to send the confirmation text, the reply ended up in the email inbox just fine, but did not seem to verify the email. Do you match that the first word is enable? It looks like verizon appends a signature to the mms reply.
[edit] debug yielded no useful info, I do not see any errors in console.
[edit2] Set debug to true in the config.proporties file, not email.properties, trying again.
[edit3] Nope, no more verbose than non debug. All I see is "Checking for new email". No login errors, no timeouts.
@kaveet
You can turn on debug mode, try changing your IMAP port, try using an email instead of a phone...
@scottjl
@eatmybiglazer
With the Bukkit API change I needed to fix how the resources are copied. updating now (v1.4.1) click the Stable build link at the bottom or wait for it to be approved by Bukkit