Advanced Monitoring Signs
This is a rewrite of OPS
BETA BUILDS DIRECT LINK
This is a link to the current beta build. I'll update the version number here every time I release something supposed to fix an issue. Thanks. Version 1.1 (also downloadable through AMS files page)
Recent changes
Major timing improvements. View the issue for this ticket to see how drastic.
Upgrading from OPS
If you are one of the veteran users of this (OPS) you probably want to use the /amsupgradefromops command. To do this, you simply leave the signs.yml file in the "Online Player Signs" folder and run the command. There is also a security switch in the config which has to be set to true for the command to run. I suggest you read through the comments in the generated config.yml before running the upgrade because the comments will disappear once you have ran it.
Features
- Signs monitoring different things across the server, in specific worlds or in regions selected with WorldEdit or specified on the sign with coordinates.
- All custom formatting of the text on the signs with full color support.
- Transmit power from the signs if the conditions are met. (Only redstone wire)
Usage
There are four types of signs.
- Server sign
- This sign keeps count of the total amount of players on the server.
- Lines:
- "[ams]" or "[ams+]". The plus sign goes in the same spot for every sign. It represents power. If the sign has a plus it emits power if a condition is met.
- "server". Here you provide the name of the format you wish to use. Formats are created in the config. The format "server" is a preset format already added to your config, feel free to change it.
- "". For server wide signs you don't write anything on this line.
- "p=mp". This line is left empty if the sign should not emit power (if it does not have a plus sign in first line). You can probably tell that the equals sign checks if p=mp, but what exactly are these letters you wonder? Well, these are statement variables. The p will return the amount of players on the server, and the mp will return the max amount of players. Of course you could put in any number and check if you'd like. The allowed checks are =,>=,<=,>,<,/. All but the last one are pretty self explanatory, but the last one means dividable by, which means that dividing the two numbers will result in number without decimals.
- World sign
- This sign is basically the same as the server wide sign, but monitors specific worlds instead.
- Lines:
- "[amsw]" or "[amsw+]": The w is the letter that decides whether the sign is a world sign or any other type. The plus tells it to emit power, and to accept a statement on the last line.
- "world": This is another preset format name. Have a look in config for more info on these and variables you can use in them.
- "" or "worldname": If you leave the third line blank, it will start monitoring the world the sign was placed in, but if you provide a world name (note: you can include colors in the world name to change it's appearance on the sign. When AMS checks for the worldname provided it removes colors) it will start to monitor the world provided. If the world does not exist you will either get an error or it will display 0 for amount of players (p).
- "p>=2" or "": Again, leave this blank if you haven't put a plus sign on the first line. The variables are the same here, except that p returns the amount of players in the world being monitored.
- Player sign
- A player sign is quite useful if you want your players to see if the admin is online.
- Lines:
- "[amsp]" or "[amsp+]": Same as last time, p for player.
- "player": Another preset format name.
- "&fWhite&chooder": This is where you enter the name of the player, and just as an example I've provided my name with a bit of coloring :)
- "": This last line is a bit different, mainly because the sign is not displaying any numbers, but rather checks if a player is logged in. This line is left blank in both cases (+ or not), but if there was provided a plus in the first line, the sign will emit power if the player is online. The player name is not case sensitive so feel free to use whatever formatting you would like.
- Region sign
- This is probably the sign we have all been waiting for. A sign monitoring amount of players withing a region.
- Lines:
- "[amsr]" or "[amsr+]": Same as always. Power or not.
- "region": Format name. For the region signs I have provided two other examples. Those are names "powerexample" and "lobby".
- "x1,y1,z1,x2,y2,z2" or "": You were probably thinking, Oh god, why the hassle with finding all the coordinates? Y U DONT USE WORLDEDIT??? Well, if you leave this field blank, the sign will get the current selected region from worldedit and use it. Note: The selection has to be cuboid (for you not understanding this, don't worry, you will always select in cuboids :))
- "p=8" or "": I don't see much reason to use region signs not providing power, but the option is there for you to choose :) Again, if you didn't bother to read on all the old sign stuff, this p=8 thingy basically checks whether the amount of players in the region is exactly 8, if it is, the sign will emit power. As you might have thought for a while now, this is very useful. Just test the lobby example and you'll see ;)
- I know you have read a lot at this moment, but please take your time to look in the config, there are helpful comments there as well.
Configuration
The default config looks like this:
# IF YOU ARE UPGRADING FROM OPS THERE IS AN OPTION TO USE THE SAME SIGNS.YML FILE # Uncomment the line below to allow the running of the /amsupgradefromops command #UPGRADINGFROMOPS: true UseBypassNode: true formats: world: - '&aOnline in' - '%world%' - '%players%' - '' player: - '&aThe player' - '%player%' - '&ais %onmsg=Logged in%%offmsg=&cLogged out%' - '' server: - '&aTotal' - '&aPlayers' - '&c%totalplayers%&f/&c%maxplayers%' - '%poweron=&aPOWER%' region: - '&aPlayers in' - '&c%region%' - '%players%' - '' powerexample: - '&aPeople done' - '&awith puzzle' - '%poweroff=&c//1// of //2//%%poweron=&aEnough!%' - '%poweron=&aEnter next room%' lobby: - 'The game' - 'starts when' - 'there are' - '//2//-//1// more player' #Note: //2//-//1// is not displayed like 4-2, it actually calculates it for you, meaning it would show as 2 (4-2=2) #You can do the same with all basic calculations (+,-,*,/) #Variables available: %players%, %maxplayers%, %world%, %totalplayers%, %player%, #%onmsg=<msg>%, %offmsg=<msg>%, %poweron=<msg>%, %poweroff=<msg>%, //1//, //2//, //3// and so on.. #%players% - in a server type sign it returns total amount of online players, #if you want this in any of the others use %totalplayers% #in a player specified sign %players% does not return anything, but gets filtered out. #in a world based sign %players% returns online players currently in that world #lastly, in a region specific sign %players% returns people in the region. #%maxplayers% works in every sign and returns the servers maximum amount of players. #%1% and %2% are the first and second values to compare (when the sign was made) #Example: SignLine4: "%player% >= 10" %1% = %player% %2% = 10 #These variables are there for the plugin to be as configurable as possible. #I will soon add custom variables and sign linking for longer texts :D Look forward to version 2.1. (hopefully) #Also, I might release an API for this if enough devs are into it.
The config explains a lot in comments, but I thought I would go over at least the variables and which ones can be used on what kind of sign. You can use all except the onmsg, offmsg and world ones with a server sign, as they are player- and world signs only. If any variables are used in an unsupported sign they will simply get filtered out. For a world sign, you can use all that the server sign can use and the world variable, which obv. returns the world name being monitored by the worldsign. Player signs can make use of every variable except world, as it is monitoring server wide. Region signs can also make use of every variable, including world, as it is monitoring a region within a world.
Info on 1, 2 and so on The number stands for what spot in the question (p=8). 1 in this case would return the value of p, and 2 the value 8. In some cases you can use 3 and 4. This is when there are multiple statements, like here: p>=8 & p/2. In case you wondered what this checks: The first check makes sure that the value of p is either greater or equal to 8, and the second check should check if the value p is divideable by 2, meaning that you will only accept even numbers, so that for instance both teams would have an equal amount of players. Now, back to the <numberhere>'s. 3 would in this case return p, since p is the third mentioned value, and as you've probably (and most likely) figured out by now, 4 would return 2. If there are any more questions regarding the config file or anything else for that matter, please post them in the comment section and I will add them with the answer here, as well as answer you in a reply :) Once one person asks there are always several more wondering just the same thing, so don't be scared.
Commands
- /amsverify <fix/delete>: Either puts up all signs that has been removed in some way (worldedit and so on) or removes the node for the sign from the signs.yml
- /amsupgradefromops: Takes the signs.yml file from Online Player Signs' folder and reformats it so that you don't have to recreate every single sign if you have previously used OPS. This requires the setting of the node UPGRADINGFROMOPS: true in the config.
- /amsreload [signs/config]: Reloads the yaml files. If you don't specify which file should be reloaded it reloads them both.
Permissions
- ams: Access to everything.
- ams.verify: Access to the /amsverify command
- ams.upgrade: Access to the /amsupgradefromops command
- ams.create: Access to creating all types of signs.
- ams.create.world: Access to create a world specific sign.
- ams.create.region: Access to create a region specific sign.
- ams.create.player: Access to create a player specific sign.
- ams.create.server: Access to create a server wide sign.
- ams.break: Access to creating all types of signs.
- ams.break.world: Access to break a world specific sign.
- ams.break.region: Access to break a region specific sign.
- ams.break.player: Access to break a player specific sign.
- ams.break.server: Access to break a server wide sign.
- ams.reload: Access to reload the config files.
- ams.reload.signs: Access to reload the signs.yml file.
- ams.reload.config: Access to reload the config.yml file.
Todo
- TOP PRIORITY I will be adding support for creating signs by command shortly. This will fix all the errors with the 14 character limit of signs. While waiting for this update, and you have access to the configuration files you could try to edit the signs.yml file manually and input either the world name or the player name that is longer than 14 characters. Note: It will still struggle to show those long names on the sign.
- Just came up with an idea while adding the above. I will add support for displaying the nickname of a player instead of the real name. This is lower priority, but should come quickly as well.
- Add warp sign!
- Add worldguard support for region signs.
- Add the %region% variable for showing the name of the region. For use with worldguard regions and others if name specified when the sign was created by command.
- Better redstone support, although this is a big goal, so don't expect this to be coming in the near future.
- Add custom variables for use in formats.
- Advanced maths and support for multiple statements on each sign? BTW: For you people wanting this, there kind of already is, you just separate them with &'s. Although there is support for it I can not guarantee anything ;) They have been a little buggy while testing.
@whitehooder
Sounds good. I'll be waiting for the next release :) any possible ETA?
@FusSionzZ97
Currently it's not possible. This will be added when I add support for worldguard, yes, but I think I'll implement it without the need of worldguard. It would then be assigned the worldguard region name if created from a worldguard region, and a specified name when creating it + it has to be created by command, as there are no more than four lines on a sign.
@whitehooder Is it possible to name a region sign? so instead of it saying %region% it has a custom name? Or is it just worth waiting for worldguard support?
@SCraft98Server
The point is, that you can already do this (sort of). Connect redstone to a region-power sign and let it open up a way to the other lobby, or to a portal.
Although you can (again, sort of) accomplish this with the current plugin, I see what you mean and will add it to my todo list. Warp sign will be it's name ;)
Also, I should clear up in the redstone stuff and give it a few more possibilities, it's just that to get the redstone working properly I would have to update this plugin as well every release because of the need of NMS code.
or skype me than we can talk about it
make on a region sign the text - join if you can join or full whan it is on the max players - this one is the name so lobby 1 lobby 2 ec. - players that are in the region / the max players bv 8/10
can you make that? it would realy help me
@Baamoink
This will be solved by adding support for creating the signs by command, hopefully in the near future. Meanwhile you could try to edit the signs.yml if you have access to it. It should support longer names already, as I had this limitation in mind when I rewrote this from OPS :)
@SCraft98Server
I've not been to the hypixel server, but if those signs you want are some sort of warp signs, please use my plugin with a region sign which emits power whenever the statement is true (read in the description for the plugin for more info about this). Simply hook redstone from the sign to a command block with a warp command from another plugin.
If this is not what you meant, please explain it in a little more detail :)
Heey, Can you make it ready i really need the plug-in. And can you make the sign like the hypixel server. ( if you can join witch map? And how many players there are in game and the Max players)
Can i help or something? My Skype is Stijn98s
Gr. Stijn
Hey! I like the work you've done with this so far, I've come across an issue though.
If a player has more than 15 characters in their name, it is not possible to add them to a player sign. We have one member of staff with 16 characters in their name. Obviously this is a limitation with the signs as you can only add 15 characters per line.
But I was wondering if it'd be possible to add a 'player name part 2' variable. For example...
Sign:
In the config, it could look something like...
player:
And link %player>% & %<player% to support 2 halves of the same name. I don't believe the way I've formatted it is the most efficient way of doing it, but you get a rough idea of what I'm thinking :)
Also! If you're looking for features to add to it in future development, a variable to show the last time a specific player was online would greatly compliment the player sign format.
Keep up the good work! :)
@MinecraftedSL8
It shouldn't be that resource heavy (I thought)
How many players are on your server approximately?
This plugin is so good, but takes up so much ram on my server :(