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?
@Reilaos
Sorry, I refer to some of the commands that run other commands as macros. It helps some players in my server understand why some commands do the same as lengthier commands, such as the example I mentioned in my last post.
I just updated to the new rtriggers, the \'s are gone. works great now. Thanks!
I know I've found a few other issues with rtriggers in the past, and just been working around them, but I can't recall them. If anything, I'm just doing the coding wrong. I know I am still having the
<<everyone>>
,not|thisgrou,not|thatgroup: issue not doing as I plan, but as I stated, I think I'm just doing it wrong while being lazy and not listing all the groups that is allowed to use that feature.Hello! I'm trying to make a trigger that would send a user into survival mode after a set time (60 minutes)
So! On the command /gm the player would start a timer, and at the end of said timer, they would be sent back into survival.
Can you help me?
@Ako17
How odd; does it work without the delay on it?
@Liger_XT5
Regarding the slashes: That would be my fault; I'll get an update out soonish.
Wait, so can they still use the command? Macros shouldn't be able to allow players to do things they can't, unless it's be executed by another player/the console.
Hi, I noticed that rTriggers was updated after a long time of it being down on our server. Thanks! I'm glad it's back.
My problem is that login messages no longer work, but instead just place a blank line. I understand that the override places the blank line in place of the default message, but where are my messages?
<<everyone>>
=<<triggerer>>
:onlogin|override,delay|2:&bWelcome to &3VillageCraft&b, &6<<triggerer-displayname>>
&b!<<everyone>>
=<<triggerer>>
:onlogin|override,delay|5:&bFor server help and information, type: &3/help@Reilaos
It worked! Now I've got a new problem though. I got a \ infront of everything that has a color change :P
Ex:
Makes the proper color changes, but chat (minus colors here) looks similar to this:
\[\m\] \PlayerName\: \TheirMessage
Edit:
Found another, yet interesting bug.
I've been working on protective regions where some commands can not be used. I have one command, /mcden, which does /warp mcden, as a quick macro for users. If I have /warp disabled in an arena, they can't do any /warp command, but /mcden still works and they get the worldguard message stating /warp is disabled. :P
I've also noticed the same with /rules in the guest rules test area. A small area set with multiverse portals, stand in the portal that is the right answer to the question, it TPs you to the next room, wrong answer and you're stuck outside looking down, unable to do anything. Both the wrong answer area and the test rooms, players can re-read the rules and use /mcden to exit. Only the smart ones would be able to get out, but still, not really a locked down region :P
@RealLechal
You would want a combination of
<<everyone>>
and<<command-recipient>>
as the recipients.@Liger_XT5
I'm thinking the & gets replaced by that weird s symbol thing: §. If I'm looking at my code right, though, you can do a \& instead of & to make sure that replacement doesn't happen. The regex I'm using to do the replace is
instead of a simple "&".
@Reilaos
Got a problem.
I'm using PEX for permissions and chat, I've set up a few colored chat schemes players can choose from to change their chat. The command is set to run console side so no one could manipulate it to their advantage or such.
Problem is, everyone's chat comes up white. My guess is, the color codes are not being passed to the console by character, yet they are being passed via colored characters.
Hey I have tried to let all player use a command when I use another command, but I have no idea how the line should look like. I tried this way: Admin=
<<command-recipient>>
:oncommand|/command1|override:command2 (Admin is my group) But it didn't work at all. So I tried that: Admin=<<everyone>>
:oncommand|/command1|override:/command2 But it wasn't used as a command. It just showed up in the chat to everyone. Can you help me with that? I don't know if that is even possible witht the given options, but could you add something like<<command-everyone>>
as recipient if not?@Reilaos
Good to hear you found the bug. Have a great July 4th!
@Reilaos
Ah, I've found it. Let's see here, then...
@Liger_XT5
Does this line only show up once?
[INFO] [rTriggers] Loaded: Version 2.5
It looks like one of my functions is getting called after every plugin load, but it's only ever called in one place...
@Reilaos
Got a small problem, rtriggers keep re-enabling itself at startup.
This is just a small portion of the repeats.
Thanks Reilaos! I was actually thinking of sending you a tweet about the update for reloading a few minutes ago when I got off work. :)
@Reilaos: Thank you for the update :)
Finally an update!
@xiamix
@xiamix: That's actually a thing? Interesting. o_o I guess it's time to break my silence (I recently made it a policy not to speak unless I actually had a change ready)...
You, sir, his a use case I was putting off on programming until someone actually used it, because I hadn't made a nice, unified way of doing delays from delays or timed events. Now, I do. It should work now, and my code is a little bit nicer looking for it.
@sgttarn: I think what you want is oncommand|/hbg|override|2. I think.
@LigerXT5: the only thing that not| works for in triggerers is not|
<<hasperm>>
kind of stuff. The rest (not|group, not|person) stuff is just for recipients, because, well, the feature was kind of shoehorned in. :P@all: I made a reload command: /rtriggers reload
Uses permission: rtriggers.admin.reload
Also, if you really want, you can play with a little debugging command I added: /rtriggers list permission: rtriggers.admin.list
It really won't be helpful to anyone, though.
Sorry, the manager doesn't reply anymore so I've put this plugin as abandoned since June 27.
I noticed no one seems to care about this plugin anymore, but it does exactly what I need and now I need help setting one line.
I'm trying to get the console to run
manuadd <<triggerer>> tribute
but only if the triggerer runs the command/hbg join game
So my line is:
The thing that matters most is the number of arguments. There are no examples above, and I can't find any in the comments. I need 2 arguments as I said before with the main command hbg.
Help?
My configuration don't work. Please help me or update the plugin.
PS : When I use this configuration, all the commands with :delay|xxxx: Don't work ( they come at the same time as the normal timer. the delay isn't respected.)
Got 2 questions : How to force all the players to run /spawn every 10min ? (can't create the code.) And can we chose in wich world rtigger runs this commands ?