SkyText
SkyText
Description
Compatible with Bukkit 1.7.2!
SkyText is a plugin to allow you to write text in your world
using the command /skytext hello_world 0 will write hello world in blocks where you are standing. You can use this plugin to write text above your portals or just write text to sign post areas.
In v1.1+ you can now add scheduled text.
For instance, if you have a minigames area you can put text that changes between all your minigames available in the portal beneath. You could also, if other plugins allow, have countdowns to games starting.
Also, in 1.1+, you can now have text that changes based upon command blocks.
Any suggestions then please let me know, this is my first plugin (of many I hope).
Features
- writes text of your choosing
- change the rotation of the text
- Schedule text to display on server start
- Allow changing text in a specific position
Dependencies
- worldedit - I highly recommend getting the latest snapshot, especially if you are running 1.7.2 as this has the latest NMS support (http://builds.enginehub.org/job/worldedit/)
Optional dependencies
- Vault - If you want any integration with economy, ensure you have Vault
- Factions - If you are a factions lover, and want to integrate, ensure you have it installed!
How to install
- download SkyText.jar and place in plugins folder
- download worldedit from here and place in plugins folder
- restart server
- If you change the config, you will need to restart the server to get those changes!
Setup
No setup is required if you do not wish to have text that changes on a schedule or is linked to server start.
Brief Tutorial
Commands
Note: If you wish to have a space in your message, use the _ character
Place a message where the player is standing with a specified rotation and optional coordinates
- /skytext <message> <rotation in degrees (0,90,180 or 270)> [x] [y] [z] [world]
From 1.15 you can also use:
- /skytext <message> <rotation in degrees (0,90,180 or 270)> [blockid] [dataid] [x] [y] [z] [world]
Create a new message group in the config and set a default message
- /skytext create <name_of_message_group> <message>
Add a new message to be rotated in a message group
- /skytext set <name_of_message_group> <message>
Change message group settings (new in 1.12)
- /skytext set <name_of_message_group> set <world|ticks|rotation|blockid|dataid|location> <value>
Reload from config.yml
- /skytext reload
Config.yml
You can see an example config.yml here config.yml
Permissions
- skytext.write gives permission to write
- skytext.create gives permission to create a message group
- skytext.reload gives permission to reload from config.yml
API
A better implemented API is coming shortly, but this code works perfectly fine for now.
Add this to your OnEnable or initialisation code:
SkyText SkyTextPlugin = new SkyText();
Then wherever you wish to write text use this:
Writing.WriteText(new Location(Bukkit.getWorld("world"),100,100,100), "chicken", 0, SkyTextPlugin, 100, 1, 0);
WriteText Parameters:
- Location is the location in the world.
- The letters are what you want to display, in this case I picked "Chicken",
- The angle is the rotation angle, either 0,90,180 or 270
- Then we pass the skytext plugin into the command.
- Then we pass the maxwidth, this is currently unused.
- Finally we pass the blockid and the dataid.
Changelog
- 1.15
- Breaking Change: Updated command to include optional blockid and dataid of block: /skytext <Message> <rotation> [blockid] [dataid] [x] [y] [z] [world_name]
- Added some colours to messages to make them clearer
- Added the following parameters:
- %online% - The number of online players
- %maxplayers% - The maximum amount of players allowed
- %playername% - The name of the player running the command
- %playerlevel% - The level of the player running the command
- %playerlevel:PlayerName% - The level of the specified player
- %playerbalance% - The balance of the player running the command
- %playerbalance:PlayerName% - The level of the specified player
- %playerpower% - The Factions Power for the player running the command
- %playerpower:PlayerName% - The Factions Power for the specified player
- %days:EventName% - Days until EventName happens
- %hours:EventName% - Hours until EventName happens
- %minutes:EventName% - Minutes until EventName happens
- %seconds:EventName% - Seconds until EventName happens
- Fixed compatibility problem with AWE
- Fixed Colon not working
- Area is no longer cleared in advance, rather as each letter is added a space is also added between letters
- 1.14
- Fixed crash when using the plugin when you did not have the magical default world name that I created. (*slaps self*)
- 1.13
- Added reload command. Use /skytext reload to reload config.yml
- Added skytext.reload permission. Use to allow anyone to reload.
- Removed the need for setup:true|false in the config, it will now check if the schematics are present before copying them
- 1.12
- Refactored code to make things a little easier to maintain (Already!?)
- Added setting message_group settings without editing config.yml
- Added more error checking and feedback to the player
- 1.11
- Now correctly clears old word of message group
- Fixed spacing between letters
- Fixed letter I getting skipped (if you upgrade from a previous version, set setup:false in the config.yml to regen the schematics
TODO
- Add Undo
- Add broadcast option to skytext options (when large letters in the sky just aren't enough!)
Bugs
- When using message groups, if one of the lines is longer than the other, the text can overlap. I would recommend using the underscore character to flesh out the text so it gets wiped. For example:
- _hello_world_
- how_are_you
- Improve schematics
Thanks
- Thanks to desht for the TerrainManager code, it saved me some research! :D
Only lower case characters work. ;(
Please make it as an announcer plugin, where you can chose the start position, and it change messages at a predefined times.. thanks..
New version coming soon with the ability to time changes from config.yml in set positions!
@Skyost
Just 1 screenshot at the top of the page atm. I'll get some more done soon.
@coolerblast50
Can you let me know what problem you get? Are you also using 1.01? Please let me know any more info and i'll have a look.
It does not work
Post screenshots please.
@Seaboiii
That's exactly where this is heading Seaboiii. I hope to have that done soon.
@commonblob
I do hope you can make it like a announce plugin. Rotates after x amount of time to other messages
@maxlehot1234
Is it possible to add: which blocks i want using command.
So are you suggesting you may want to replace all the blocks in the letter to be, say, STONE. If so, then yes that's definitely possible.
Is it possible to give the permission to remove the text? Is it possible to add: /skytext remove [themessage][id]
Removing text is next on my list to do, so both of these will be possible. Adding an ID for each text is certainly possible and I'll try and include that in the next version.
Thanks for your suggestions!
Is it possible to add: which blocks i want using command.
Is it possible to give the permission to remove the text?
Is it possible to add: /skytext remove [themessage][id]
add id for each message.
@SurvivalXXX
Hi SurvivalXXX,
All the letters are MCEDIT/Worldedit schematics. So if you are comfortable with editing them you can create your own and just overwrite the included schematics.
Is there any ways to change the look/font of the text in the sky?.