rTriggers
MotD, Tips, Obituaries, Macros, Customization Trigger messages on login, disconnect, timers, commands, death and more.
Personalize messages with tag replacements.
Features
- Trigger messages or commands on login, disconnect, timers, or even player death and command uses.
- Decide exactly who can set off a message, and who gets it. Name players individually or by group (via Permissions).
- Line breaks on words, colour continuations (thanks to modified vMinecraft code!)
- Personalized, fill-in-the-blanks style messages (insert the triggerer or recipient's name/IP/whatever here.)
Messages format
Example properties file is in the section 4.0. rTriggers will make a properties file at plugins/rTriggers/rTriggers.properties, where plugins is in your server's folder.
The properties file consists of a list of your messages. Each message is formatted like this:
triggerers=recipients:options:message
The triggerers tell rTriggers which groups or psuedogroups can set this message off. Recipients are the ones who actually see the message when a triggerer sets it off. Options tell when and in what manner a triggerer can set off a message (like when logging in, dying, or using a certain command). The message is the actual thing that gets sent.
One can specify multiple things in the triggerers, recipients, and options fields by using commas (no spaces). What each field does is described in a section below.
Legend
If it has <<>> around it, you need to include those! bold: The name of the option/group/whatever italics: An optional part of the tag. You can leave this out (leave out any | in front of it, too). underlined: You replace this with something (like a number, or a group name). Necessary, unless it's italics.
Triggerers and Recipients
Triggerers tell rTriggers who can set this message off. Recipients tell who sees this message whenever a triggerer sets it off. Leaving the recipients field blank will default the recipient to just the triggerer. groupname: Members in this group will trigger the message (or receive it, if they're in the recipients field).
<<everyone>>: Everyone!<<hasperm|permissionnode>>: People with the stated permission trigger/receive this message.<<player|playername>>: Replace playername with the name of the player you want to be a triggerer (or a recipient).<<command-triggerer>>and <<command-recipient>: Makes the player use the message as if it were a command.<<command-console>>: Makes the server console use the message as if it were a command.<<say-triggerer>>and<<say-triggerer>>: Makes the player say the message.<<timer|interval>>: (Triggerer only) Will repeat this message (replace 'interval' with how often you want to repeat the message in seconds). Use with lists to make tips!<<t|minutes>>: This message will repeat every hour at this minute (<<t|30>>happens at 1:30, 2:30, etc.)<<server>>: (Recipient only)Message is sent to the server.<<triggerer>>: (Recipient only) The person who triggered the message.<<twitter>>: (Recipient only) Sends the message to Twitter (ServerEvents required!!!)<<near-triggerer|dist>>: (Recipient only) Everyone inside a dist x dist square around the triggerer gets the message. Replace 'distance' with the active area of this.- not|groupname and not|
<<player|playername>>and not|<<triggerer>>and not|<<hasperm|permission>>: (Recipient only, except for hasperm) Works like the versions without 'not|' in front of them, except it makes sure that the message WON'T get sent to that person/those persons. <<craftirc|tagname>>: (Recipient only) Replace 'tagname' with the name of the tag you want CraftIRC to send the message to.
Options
Options tell rTriggers when the message should trigger, and how. Leaving this blank is the same as using the onlogin option.
- onlogin|override - Triggers when a triggerer logs in. Override will replace the default message with a blank line.
- ondisconnect|override - Triggers when a triggerer logs out. Override will replace the original disconnect message with a blank line.
- oncommand|commandname|override|number - Triggers when a triggerer uses the specified command. Override doesn't let the command move to other plugins (removes the 'unknown command!' prompts). The number specifies the number of required arguments.
- onconsole works like the oncommand event, except you can't override these. :( Not yet, anyway.
- onload|pluginname - Whenever the plugin called pluginname is loaded by CraftBukkit. Use with
<<customtrigger>>as the triggerer. - onkick - Triggers when a triggerer gets booted from the server.
- ondeath|natural|deathcause - Triggers when a triggerer dies. If deathcause is specified, will only trigger on that manner of death. Possible death causes are: "contact", "entity_attack", "fall", "fire", "fire_tick", "lava", "drowning", "block_explosion", "entity_explosion", "suffocation", "custom", "lightning", and "something." If the natural option is used, then it will not trigger if the player died by playerkilling, or from a mob.
- ondeath|playerkill - Triggers when a triggerer is killed by a fellow player.
- delay|seconds - Makes the message wait a few seconds after being triggered before happening
- limit|seconds|pertrigger - Keeps a message from triggering faster than specified. If pertrigger is specified, then this limit is done on a per-player basis, rather than being for everyone.
Messages and Replacement Tags
This is what you want rTriggers to say or do. You can customize it with replacement tags, which rTriggers will find and replace with the appropriate information. Here's a list of replacement tags:
<<triggerer>>- The name of person who triggered the message (by logging in, getting kicked, etc).<<recipient>>- The name of the person who the message is being sent to (may be the same as triggerer in many cases).<<recipient-displayname>>and<<triggerer-displayname>>- The display name (as opposed to the raw name).<<player-list>>- A list of all the players online.<<color>>- Replaced with §. Follow up with a hexadecimal number to get a color! (0-9 or A-F)<<triggerer-balance>>and<<recipient-balance>>- The player's iConomy balance.<<death-cause>>- (ondeath only!) The cause of death.<<killer>>- (ondeath only!) The killer (player name, creature name, etc.)<<kick-reason>>- (onkick only!) The reason given for kicking the player. oncommand only!<<param#>>- Replace the # with parameter number, like<<param1>>, etc. It's replaced by what the player puts into the command.<<param#+>>and<<param#->>- is replaced by all the parameters up to and including that number/starting with and following that number.<<params>>- Is replaced by all the parameters put into the command<<list|listname|rand>>- Will be replaced by an item in the list called "listname." If rand is specified, it will give a random one from the list. If not, it will go down the list sequentially. IP Address/Location related:<<triggerer-ip>>and<<recipient-ip>>- The player's IP Address.<<triggerer-locale>>and<<recipient-locale>>- The player's location.<<triggerer-country>>and<<recipient-country>>- The player's country.<<time>>,<<hour>>, and<<minute>>: These do what you probably think they do.<<everyone>>and<<hasperm|permission>>the message will be repeated once for each player online/with that permission, with this tag replacement- You can use them multiple times in a message, and use different ones in a message.
- If you use the same tag multiple times, it will only trigger once for each player that it applies to. That is, making someone execute "/tell
<<everyone>>Hello there,<<everyone>>!" will only make them say hello to everyone by their name. It won't make them list off every player to every player. - If you use different ones, it'll go through every valid combination that satisfies those tags.
List Format
These go in the same file as the messages.
<<list|Bob>>=This text goes in the 'Bob' list. <<list|Bob>>=This is also in the 'Bob' list. <<list|haha>>=This is in a separate list called 'haha'
You replace "listname" with whatever name you want. You can use replacement tags here, if you like.
If you use either the replacement tag <<list|listname|rand>> or <<list|listname>> will be replaced by an item in the list called "listname." If 'rand' is specified, this item will be randomly selected from the list. If not, it will just pick the 'next' item on the list. Order is determined by the order you put it in the file.
Example
################# # MOTD Example: # Basic MotD for humans group humans=::§b Hey <<triggerer>>!@ Type /rules for a list of rules. # News that shows when players log in. # Also shows up when players type /news. # Use $ to continue on the next line, and @ to insert a linebreak. <<everyone>>=:onlogin,oncommand|/news|override:<<color>>b Here's our latest events:$ @Nothing at all, really! # Tells anyone in the 'humans' or 'gods' group who's online when they log in. humans,gods=::<<player-list>> #Displays rules when people use the /rules command <<everyone>>=<<triggerer>>:oncommand|/rules|override:1) Don't break things.$ @2) Have fun.$ @3) RESPECT MAH AUTHORATAH! # Announces the login and disconnect of anyone in the 'gods' group to the server gods=<<everyone>>:onlogin,ondisconnect:<<recipient>> pay heed, and hail <<triggerer>>, your god! #################### # Tips/Timer Example # This one does it sequentially <<timer|300>>=<<everyone>>::<<list|TipList>> # This version will pick a random tip <<timer|300>>=<<everyone>>::<<list|Burn|rand>> # Here are your tips <<list|TipList>>=This tip comes first. <<list|TipList>>=You see this tip 5 minutes (300 seconds) later. <<list|TipList>>=This one comes 5 minutes after the one above! # This timer makes the server use the backup command every 10 minutes! <<timer|600>>=<<command-console>>::backup ############## # Commands/Aliases example # Will announce whenever someone /tps to someone. <<everyone>>=<<everyone>>:oncommand|/tp:<<triggerer>> tp'd to <<param1>>! # Map multiple commands to one! # /suitup <target> # Gives the target player a full suit of iron armor and then teleports you to the target. gods=<<command-triggerer>>:oncommand|/suitup:give <<param1>> ironchestplate 1$ @give <<param1>> ironpants 1$ @give <<param1>> ironboots 1$ @give <<param1>> ironhelmet 1$ @tp <<param1>> ############## #Death Related stuff # Will announce the weakness of a god when he or she dies. god=<<everyone>>:ondeath:Even a god like <<triggerer>> can die... # Will randomly select something in the list "Burn" whenever someone burns to death. <<everyone>>=<<everyone>>:ondeath|fire:<<list|Burn|rand>> <<list|Burn>>=Let it burn! Just like <<triggerer>>. <<list|Burn>>=Would you like your <<triggerer>> medium or well done?
-
View User Profile
-
Send Message
Posted Mar 3, 2013@OrfulBiggun
Bugger. I was hoping this'd be one of those things I could code and not test, because I'm a lazy bastard. Alrighty. Time to figure out where I went wrong. Be back shortly!
EDIT: 7 minutes later, Triggers detected on onconsole|command, without the /, as I expected. So they're getting detected, it's just not behaving for some reason....
EDIT 9:35 am MST:
<<customtrigger>>might need to be used for onconsole|command.EDIT 9:41am:
<<customtrigger>>works. I also got onconsole|command|override working. However, it seems that commands targeting<<command-console>>do not trigger events. How peculiar. I must fix this.-
View User Profile
-
Send Message
Posted Mar 3, 2013@Reilaos
I'd like to second the kudos on response time, sheesh I wasn't even ready to try anything until late last night. :-) Good on ya.
Okay, I think I see what you did there (tricking the plugin into recognizing it's own command as a trigger, kinda looping itself, right?) ... so I d'loaded the newest version of rTriggers. I entered the commands as you gave them (I changed 'groups' to 'Admins', which I have set up in PEX), then had an 'Admin' enter the command from inside the game.
Didn't see anything on the game screen, and when the timer triggered, I got 'Unknown command. Type "help" for help.' in the console. I checked for typos and all that.
I also tried removing the '/' as you indicated; tried various combinations of that. Nothing seemed to improve the situation, although I'm of course worried that it's something silly (in my experience these things can often be that way, the longer it takes you to isolate a small programming issue, the more likely it is that it's something entirely goofy, like a typo or something lol).
Thanks again for your help!
-
View User Profile
-
Send Message
Posted Mar 2, 2013Ey guy's gona share some of my code here!
made this code myself ENJOY!
some example of the fake quit and join message on my server!
want me to make some command for you? I can try, just pm me and i will see what i can do.
-
View User Profile
-
Send Message
Posted Mar 2, 2013Make it so there is a
<<killer>>recipient too, to notify a player if he/she makes a kill :D-
View User Profile
-
Send Message
Posted Mar 1, 2013@Reilaos
Haha, thanks. I just happened to glance at my e-mail at the right time. :p
Thank you kindly for the compliments, too. But with a mod this old ( around 2.2 years!) there are a lot of weird quirks in how I made the syntax and even just coded the plugin that I would do completely differently if I started over. But starting over would be a lot of work, and changing the syntax would only inconvenience those who've been crazy enough to use my plugin for months. Instead of that, I've just tried to make the documentation as clear as possible. :3
-
View User Profile
-
Send Message
Posted Mar 1, 2013@Reilaos
Jeez, great response time. Kudos to you sir :) . And thanks a ton! Yea, I considered typing in the rest of the properties, but I wasn't completely sure. In hindsight I probably should of at least tried. Great plugin, very detailed, descriptive, wonderful work, hope to talk with you again in the future! Thanks!
-
View User Profile
-
Send Message
Posted Mar 1, 2013@EEvolution
It's been so long, but I don't think there's actually anything in that file be default, actually. You should put in your own messages/whatever. There's some examples for messages in the project description above.
-
View User Profile
-
Send Message
Posted Mar 1, 2013I bet I'm doing something completely stupid and wrong, but I just can't figure it out. I have reloaded the plugin multiple times, restarted my server as well, yet all my config says is
" # Properties file generated on Fri Mar 01 22:26:38 EST 2013 "
Nothing else. Thanks in advance!
-
View User Profile
-
Send Message
Posted Feb 28, 2013@OrfulBiggun Glad to see you're using the plugin, though 'so up to date' isn't true across all spans of time. xD
There's no way to do it with
<<timer|interval>>, BUT you can do something very weird using console and oncommand, once I make a small change.At the moment, however, console commands don't hit the oncommand event. I might add a seperate option for it. Like an onconsole or something. Wouldn't that be fun?
EDIT: Try the above now with rTriggers 2.6. You might have to remove the / from the onconsole|/startimer stuff.
-
View User Profile
-
Send Message
Posted Feb 28, 2013@torey0
dude, I HAD this problem too. make sure it's Admin if that is set in the groupmanager file. make sure the ShiFtS are correct.
-
View User Profile
-
Send Message
Posted Feb 28, 2013Hey, Reilaos - we've been using your plugin for quite some time, months and months. We couldn't get by without it, really, on our ultra-hardcore pvp server. Very powerful, and I love how you've set up the properties file and how the messages work. Also, nothing but respect for someone who keeps the plugin so up-to-date!
I do have a question, if you get a chance. I have looked (found nothing) and done some trial-and-error (nothing worked) as well, and can't for the life of me figure out if this is possible within the rTriggers framework, or, if it is, how best to do it.
What I want to do is use your
<<timer|interval>>: triggerer ... but I don't want that timer to actually start until I give it the go-ahead (could be an admin command, or a console command, whatever)? Is that even possible?The reason I want to do this is pretty simple; I want to broadcast a server message every thirty minutes, but that thirty minutes doesn't need to start at the server start up, it needs to start later, when the match begins, and begin "timing" (for lack of a better word) then.
If this won't work - can you think of an alternate method within rTriggers? I know there are other plugins (broadcast sort of things) that might do this but the ones I've tried either weren't quite what we needed or were far too much trouble for just that one thing.
Sorry for the novel ... :-) ... thanks so much for your time and effort!
OrfulBiggun
-
View User Profile
-
Send Message
Posted Feb 23, 2013@Jarooda
Peculiar. Do you get any errors (they don't have to come from rTriggers) when you start the server up?
-
View User Profile
-
Send Message
Posted Feb 14, 2013@Reilaos
https://dl.dropbox.com/u/61656394/plugins%20folder.png
https://dl.dropbox.com/u/61656394/Plugin%20list.png
-
View User Profile
-
Send Message
Posted Feb 14, 2013@Liger_XT5
Yes. I know I have rTriggers.jar in my plugins folder.
-
View User Profile
-
Send Message
Posted Feb 12, 2013Hey i need help. Can you help me so i can run a command when a player dies the command will need there name in it.
-
View User Profile
-
Send Message
Posted Feb 11, 2013@Reilaos
I'll try it, hope this solves the issue =)
Thank you guys!
-
View User Profile
-
Send Message
Posted Feb 9, 2013@Reilaos
Thanks, I try to help where I can. :)
@Jarooda
If there is absolutely no mention of it in the server log, then it's not being loaded or noticed. Are you sure you have the rTriggers.jar in your plugins folder?
-
View User Profile
-
Send Message
Posted Feb 9, 2013@Liger_XT5
Also, you. You are awesome. Thanks for sticking around.
-
View User Profile
-
Send Message
Posted Feb 9, 2013@tr477
Heya, does anything change if you use all lowercase?
@ryan_the_leach
Done!
@notcam45
Give me a sec to upload. :3
@Jarooda
Weird. Uh, may I see your plugins/ listing, too? Thanks.
-
View User Profile
-
Send Message
Posted Feb 8, 2013@Liger_XT5
No, it does not.