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 Jun 23, 2012Great to see other people using this plugin. I've been using it since it came out. Been adding this and that over time. My config file has reached 798 lines so far.
I do have a small problem. Trying to set up some troll commands. I've noticed from time to time people joining the server, either asking for OP or using the op command. So I decided to make up some overrides. Not going very smoothly.
When someone uses the the /op command, they get the fake-message and a perm set, but still get the message about the command can only be used via the console. I have set the override feature, like many of my other commands that has overrides, but it's not catching.
An example of my problem is User selection. I want it where anyone that is not server staff to get the troll commands. But the filter is not, well, filtering, anyone using gammode for an example, winds up getting the troll-response instead. Which in this case, teleports them to the separate Creative world.
I first attempted just the hasperm without the not|this/that stuff. Didn't work. Tried it with the nots, didn't change a thing. Not sure if I'm misinterpreting the functions or what.
Other than that, really looking forward to a reload command. Restarting the server all the time doesn't help. Can't /reload ingame due to spout, and any plugin for reloading plugins doesn't seem to do too well with rtriggers for me.
-
View User Profile
-
Send Message
Posted Jun 23, 2012@Zovator
They have plugins that reload individual plugins. I use Plugin Re-Loader.
-
View User Profile
-
Send Message
Posted Jun 21, 2012Hi, this looks like a great plugin.
I am using Essentials Group Manager and if a user is in the group "player" and they die or disconnect I would like to demote them to the group "viewer", if possible I would also like to add the option for this to be world specific, e.g. this only happens in one world where the "player" group exists, however in another this doesn't happen.
I have this so far
players=
<<command-console>>:ondisconnect,ondeath:<<recipient>>$ mandemote<<triggerer>>viewerNot sure if the above code would work, and before the "mandemote" line I would need to check if the world the user is in, is on a list of worlds that this would happen in, then if so select that world using manselect
Any ideas?
Thanks Aaron
-
View User Profile
-
Send Message
Posted Jun 20, 2012@ringknight05
can that work with a particular group? like default=
<<command-console>>:ondeath: etc.etc..permissions groups doesn't seem to work here...
-
View User Profile
-
Send Message
Posted Jun 18, 2012God, give me a reload command please.
-
View User Profile
-
Send Message
Posted Jun 18, 2012@ringknight05
THANK YOU!!! Sorry caps :D
-
View User Profile
-
Send Message
Posted Jun 17, 2012@checked01
Try
<<everyone>>=<<command-console>>:ondeath:pex user<<triggerer>>group set Newspawn-
View User Profile
-
Send Message
Posted Jun 17, 2012Hi,
Your plugin is marvelous! I would have a feature request tho.
I would like to know if it would be possible for you to add an "OnRevive" trigger event because I would like my player to be randomly teleported to somewhere (Already predefined in a list) but when I set up my trigger, I write this :
<<everyone>>=<<command-console>>:ondeath:tppos<<triggerer>>267 175 87The problem is that the player that dies is not recognized...therefore, the system does not teleport the player and he stays at the initial spawn point,
If there was an onRevive option, I could teleport my player directly when he respawns.
I tried to do so with a delay but it gets annoying to wait for ever to be teleported :P and if the player does not click the "Respawn" button quickly enough, it just goes over the delay and nothing happen.
If you have any suggestion on how I could set up my trigger, I am opened to suggestions :)
Thank you!
-
View User Profile
-
Send Message
Posted Jun 16, 2012Hey guys im trying to set it up so when you die, you lose your rank, but it dosent seem to be working, here is my code
<<everyone>>:ondeath:<<command-console>>::pex user<<triggerer>>group set Newspawn-
View User Profile
-
Send Message
Posted Jun 6, 2012Can someone make this plugin recognize capitals. For example: /go does its intended rTriggers function but /GO or /Go and even /gO do the normal "unknown Command" or trigger the normal command /go would run.
-
View User Profile
-
Send Message
Posted Jun 4, 2012PLSPLSPLSPLS Update!! PLSPLSPLSPLS! I really really need it...! D:
-
View User Profile
-
Send Message
Posted May 27, 2012@CosmicVoyager You can get a plugin that reloads certain plugins. I use PluginReloader.
Also, can you please hook onto vault? Or maybe bPermissions? I can't use the plugin because it doesn't support bPermissions.
-
View User Profile
-
Send Message
Posted May 26, 2012Please, in the name of everything holy, a reload command!
-
View User Profile
-
Send Message
Posted May 23, 2012I just started trying to use the limit option in one of my rTriggers commands, but keep getting SQLite errors. Is there an easy fix for this, or should I just try to extrapolate the SQLite schema from the errors and create it myself?
Excellent plugin, by the way - so incredibly extensible!
-
View User Profile
-
Send Message
Posted May 13, 2012Is it possible to make these work in multiverse in different worlds?
-
View User Profile
-
Send Message
Posted Apr 29, 2012I hope this plugin gets updated, it's like my entire server.
-
View User Profile
-
Send Message
Posted Apr 29, 2012@notcam45
I'd much rather have rTriggers do it and avoid installing a separate plugin, since rTriggers does what I want it to do, save this one thing. Hopefully this functionality will exist in a future update (if its possible).
-
View User Profile
-
Send Message
Posted Apr 28, 2012Try using a plugin the auto announces things! I do it on my server, minecraft.tomianempire.com
-
View User Profile
-
Send Message
Posted Apr 27, 2012@notcam45
I tried this and it did not become clickable.
-
View User Profile
-
Send Message
Posted Apr 26, 2012Just make a tip that says "http://domain.com" and when people click those words it will askif they woud like to visit said link.