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
To create.... and To write... dont accept the color and it show in chat:
&4To create.... and &4To write...
also "/skytext Hello World" should work? or im writing it bad?
also idk if is only me but 90% of command not working like "/skytext set default blockid 1"
i can only do "/skytext set default ticks 100"
@commonblob
trying it now :)
Added v1.12 as a beta. Still waiting for approval but hopefully should be with you soon.
Changes are listed above.
@drtshock
That means a lot coming from you drtshock!
Just wanted to say this is awesome :3
I have uploaded v1.11 that should fix your bugs Nikkolo94. Ive tested it on my windows craftbukkit 1.64 and 1.72 and its working as expected. However ive not thourougly tested it on my spigot.
Ive set it as a beta release to show its not gone through further testing. I will continue to do this until I have good feedback that the plugin works, to avoid any unneccessary bickering on the comments..
If you are running 1.72 please update Worldedit to the latest to get the nice NMS performance improvements.
@commonblob
thank you :)
@Redstoner_Pro
i saw you made one plugin, so if this one is so "buggy" for you, why you dont code it you self ? :/
@Redstoner_Pro
Im pretty sure seaboiii was just saying that people should be a bit more constructive.
Just because you think I didn't test it, doesn't mean it wasn't tested, and again, is your opinion. I run this plugin on my Linux dedicated box, I also test on windows. Does that mean there are no bugs? no, but please, be constructive. Nikkolo94 was very helpful.
I'll upload a fix later this evening while I "TEST"
@Seaboiii
Well, what they posted is true. None of the commands actually work. They just print out the help for them. The "I" is messed up in the schematic, The plugin doesnt remove letters properly (first message 20 chars, second message 10 chars, the 5 chars on each end stay), and some characters write over others without removing old character. So i would say this plugin doesnt work as advertised. If the plugin developer "tested" this before releasing, he would know all of this. It's obvious the dev didnt test the commands or schematics.
@commonblob
no problem :) but now i updated to 1.7.2 (spigot) so if you dont update too, i cant test it :P
@Nikkolo94
Thanks Nikkolo94, im looking at your tickets and am going through them now.
Thanks for the feedback so far
@Seaboiii
Thanks Seaboiii, my thoughts exactly :D
@TopMilk
@lawrence1998
Telling ppl that their plugin doesnt work doesnt help at all. Are there errors? Did you install its dependencies? What are the problems. Saying that nothing works is too vague and the plugin author can't do anything about it if you don't help out on your side
@TopMilk
Good =D
Plugin wont work! Test it before releasing pleas!
Dosn't work atall. Try testing your plugin before you release it.
http://dev.bukkit.org/bukkit-plugins/skytext/tickets/1-an-internal-error-occured-while-attempting-to-perform/
v1.1 has been uploaded and is awaiting approval.
@Gamerboy59
This is a limitation of my Minecraft building skills :)
The new version coming any day has new letters that are a bit better. any help with letters is much appreciated :D
I will add support for lowercase though.
@levisn1
The next version can write text using world position/world from command blocks or console commands.
Ive not looked into how other announcer plugins work from a code level, if anything is required from that point of view i'll also add so it can be compatible with other plugins.