I had my doubts about how some placeholders worked and although the wiki is very extensive and explains well, I decided to ask the developer for help and he helped me without any hassle and with excellent support. I recommend this plugin 100% as you will not have any errors.
(PT-BR)
Excelente plugin! Excelente desenvolvedor! Excelente suporte!
Pela primeira vez em anos, esse é o único plugin que não tive nenhum problema, tive um excelente suporte e pude contribuir com dois bugs reportados que resolveram extremamente rápido!
Valeu cada centavo investido!
Obrigado pela inspiração Diogo!
It's a fantastic plugin for a multilingual community. With it, the players can understand the server better. The developer is very active and is always ready to help out. The plugin works flawlessly and doesn't impact the server's performance. It's straight forward to set up and the documentation is well-written.
Triton has always been my favorite plugin for implementing multi-language feature to my servers. I can recommend this plugin because of its ease of use and its wide variety of options to show your translated messages.
Отличный плагин, ранее я уже писал отзыв. Создателям респект!
Администрация помогите исправить эту ошибку ниже:
[03:55:29 ERROR]: [Triton] Unhandled exception occurred in onPacketSending(PacketEvent) for Triton
java.lang.IllegalStateException: Unable to construct new instance using public net.minecraft.network.protocol.status.ServerPing$ServerPingPlayerSample(int,int,java.util.List)
at com.comphenix.protocol.reflect.accessors.DefaultConstrutorAccessor.invoke(DefaultConstrutorAccessor.java:21) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.wrappers.AutoWrapper.unwrap(AutoWrapper.java:126) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.wrappers.ping.ServerPingRecord.getHandle(ServerPingRecord.java:326) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.wrappers.WrappedServerPing.getHandle(WrappedServerPing.java:320) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.wrappers.Converters$3.getGeneric(Converters.java:108) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.wrappers.Converters$1.getGeneric(Converters.java:55) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:358) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.reflect.StructureModifier.writeSafely(StructureModifier.java:335) ~[ProtocolLib.jar:?]
at com.rexcantor64.triton.packetinterceptor.protocollib.MotdPacketHandler.handleServerInfo(MotdPacketHandler.java:82) ~[Triton-v3.9.2.jar:?]
at com.rexcantor64.triton.packetinterceptor.protocollib.MotdPacketHandler.onPacketSending(MotdPacketHandler.java:90) ~[Triton-v3.9.2.jar:?]
at com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener(SortedPacketListenerList.java:219) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.SortedPacketListenerList.invokeUnpackedPacketSending(SortedPacketListenerList.java:204) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:149) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:139) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.postPacketToListeners(PacketFilterManager.java:553) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending(PacketFilterManager.java:526) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.manager.NetworkManagerInjector.onPacketSending(NetworkManagerInjector.java:100) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.channel.NettyChannelInjector.processOutbound(NettyChannelInjector.java:553) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.processPacketOutbound(NettyChannelProxy.java:266) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:223) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:233) ~[ProtocolLib.jar:?]
at net.minecraft.network.Connection.doSendPacket(Connection.java:476) ~[?:?]
at net.minecraft.network.Connection.sendPacket(Connection.java:438) ~[?:?]
at net.minecraft.network.Connection.send(Connection.java:392) ~[?:?]
at net.minecraft.network.Connection.send(Connection.java:378) ~[?:?]
at com.destroystokyo.paper.network.StandardPaperServerListPingEventImpl.processRequest(StandardPaperServerListPingEventImpl.java:113) ~[paper-1.20.1.jar:?]
at net.minecraft.server.network.ServerStatusPacketListenerImpl.handleStatusRequest(ServerStatusPacketListenerImpl.java:156) ~[?:?]
at net.minecraft.network.protocol.status.ServerboundStatusRequestPacket.handle(ServerboundStatusRequestPacket.java:19) ~[?:?]
at net.minecraft.network.protocol.status.ServerboundStatusRequestPacket.handle(ServerboundStatusRequestPacket.java:8) ~[?:?]
at net.minecraft.network.Connection.genericsFtw(Connection.java:324) ~[?:?]
at net.minecraft.network.Connection.channelRead0(Connection.java:308) ~[?:?]
at net.minecraft.network.Connection.channelRead0(Connection.java:51) ~[?:?]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[netty-codec-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at com.comphenix.protocol.injector.netty.channel.InboundPacketInterceptor.channelRead(InboundPacketInterceptor.java:28) ~[ProtocolLib.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[netty-codec-4.1.87.Final.jar:4.1.87.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[netty-codec-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[netty-codec-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[netty-codec-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[netty-codec-4.1.87.Final.jar:4.1.87.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[netty-codec-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at net.minecraft.server.network.LegacyQueryHandler.channelRead(LegacyQueryHandler.java:122) ~[?:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[netty-handler-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.handler.flush.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:152) ~[netty-handler-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[netty-transport-classes-epoll-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) ~[netty-transport-classes-epoll-4.1.87.Final.jar:4.1.87.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) ~[netty-transport-classes-epoll-4.1.87.Final.jar:4.1.87.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.87.Final.jar:4.1.87.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.87.Final.jar:4.1.87.Final]
at java.lang.Thread.run(Thread.java:1623) ~[?:?]
Caused by: java.lang.NullPointerException: null array reference
at java.lang.invoke.MethodHandleImpl.checkSpreadArgument(MethodHandleImpl.java:578) ~[?:?]
at com.comphenix.protocol.reflect.accessors.DefaultConstrutorAccessor.invoke(DefaultConstrutorAccessor.java:19) ~[ProtocolLib.jar:?]
... 83 more
[03:55:29 ERROR]: Parameters:
net.minecraft.network.protocol.status.PacketStatusOutServerInfo@37f24c32[
a=ServerPing[description=io.papermc.paper.adventure.AdventureComponent@3712934a, players=Optional[ServerPingPlayerSample[max=20, online=0, sample=[]]], version=Optional[ServerData[name=Paper 1.20.1, protocol=763]], favicon=Optional.empty, enforcesSecureChat=false]
]
Каждый раз эта ошибка при запуске, меня это настораживает. Заранее спасибо за помощь!
Hello,
Please don't use the review section to ask for support.
You can DM me here on Spigot, or use the Discord server.
As for your problem, please use ProtocolLib 5.2.0-SNAPSHOT.
Version: 3.9.2
Этот плагин очень хорошо подойдёт для тех кто хочет добавить несколько языков на свой сервер, это действительно лучший вариант среди всех, и потраченные деньги себя окупают в 3-4 раза. Плагин обновляемый а также удобная панель управления прямо из сайта заставляет задуматься ещё больше о покупке.
Translation by Google Translate: This plugin is very suitable for those who want to add several languages to their server, this is really the best option among all, and the money spent pays for itself 3-4 times. The plugin is updated and a convenient control panel directly from the site makes you think even more about purchasing.
Thanks!
Version: 3.9.0
Excellent everyone should have this awesome plugin it works perfect and exceeded my expectations.
It's got to be one of the best and most useful resources I have ever bought. We had a self-made translation system similar to this on our server, but it wasn't really advanced and always had issues.
This thing is just awesome and really simple. I could just migrate from my old solution to this using their online generator, and it just works.
Thank you for making this and keep up the good work. :-)
Protocollib received an update to 5.0.0, the triton plugin claims that using versions below can cause errors and incompatibility with other plugins. As protocollib 5.0.0 only supports versions above 1.19, what do you have to do with server owners on version 1.8? I need the plugin updated and compatible with my version and with the old version of protocollib, you would have to release two jars, one above 1.19 and one 1.8.
This is, 100%, the best translation plugin! You have full control over everything! It's easy to translate messages using TWIN (Triton Web INterface) which is included with the plugin!
Well, this is by far the best translation plugin out there, there’s no doubt!
The developer is really kind, he helped me with many things i didn’t understand (though the plugin has a good wiki, just silly me) he even helped me with some regex stuff and always responded fast
There are still some festures this plugin would be great to have, though its already amazing. I requested them and the developer may add those in a future release.
Thank you for the amazing feedback and I'm looking forward to improving the plugin with your suggestions!
Version: 3.8.0
I bought this plugin even knowing it was opensource.
Asked by me, having mostly paid for the plugin, to add the MySQL Driver for MySQL support on Velocity, I was replied "It is you who probably misconfigured the database".
It is highly not recommended to buy it, since at this point the 10 euros are for the apparently non-existent support.
Hello. As stated in the plugin description, Velocity support is **experimental**. Full support is planned for Triton v4, as it requires rewriting core parts of the plugin.
I said the problem could be on your side, since no one else has had the issue. I've asked various times for more information so I could debug the problem, which you didn't provide. I cannot fix an issue I cannot reproduce.
I apologize for the experience you had.
Version: 3.7.4
the developer of the plugin tried to help me as fast as possible. updates are getting put out really fast. amazing plugin.
The plugin works absolutely flawlessly. The developer is active and very helpful. Triton is a must-have for any server that craves accessibility for players.
Although the plugin has some "interlaced" when you are new configuring it, if you go to the discord the staff will know how to answer you how to get to the solution you are looking for so that you will be totally satisfied. Excellent plugin, excellent support. 1034/100 recommended.
Great Plugin! It's easy to add translations to it because you have a webinterface to manage the translations and a generator tool to generate message files to be used with Triton. The support is fast and friendly too!
Wow! Awesome experience. If you read the documentation properly it is so easy to translate everything via placeholders. No worries: You can use the web interface Twin to create your translations with ease. Simply translate everything, even if a plugin does not support placeholders! And if you have any problems head over to the discord server and ask your question, he usually answers you question intant.
Thank you very much, your feedback is highly appreciated! :)
Version: 3.0.3
What an insane plugin. Really good support if you need. Its simply perfect. You can edit your translation inside a beautiful and easy to understand web interface.
YTou can also convert your .yml, .properties language files into a ready-to-use triton file that include all [lang][langs] parameters. It save you tons of hours, maybe weeks for huge plugins.
Its simply unique and use almost NO ram/CPU even with lot of huge (essentials, cmi, mcmmo) plugins translated already.
Its simply insane. If you are not sure, buy it. I recommand it totally
Thank you for your kind words!
I really appreciate it :D
Version: 3.0.2
At first glance I wasn't sure that this was the right fit for my server because it looked like you needed to go through an extensive configuration to get it working. But anyway I contacted Rexcantor64 on discord asking for a trial version to test it out on my server. No long after that I got the trial version. After looking at their detailed documentation and some help from Rexcantor64 himself I got 4 languages set up on my server. Everything is working great. Featherboard/Scoreboard, Authme, Essentials, Gui Menus, Holograms and more. (For anyone not knowing what to do with Featherboard you use: {placeholderapi_triton_key} key is set in TWIN. For example {placeholderapi_triton_fb.Kills}).
I am extremely satisfied with my purchase and I wish the developers all the best!
Thank you.
TL;DR If you need a the best plugin to translate your server, you've found it. It's great.
This is a very good plugin that every multi-language server should have. The plugin is well made, optimized and is compatible with almost everything :)
Also the developers offer a great support if you need any kind of help and they answer fast :)
This Plugin works perfectly!
I learned to use this Plugin thanks to the Wiki and the impeccable Discord assistance, and now I can finally create my Multilanguage Server without any problem.
It's worth all the money I spent.
Great plugin, great support, fully compatible with most of plugins, holograms, scoreboards, etc! Sign translation is awesome, recomended 100%. Web interface it's pretty cool too! <3
Thanks for reporting some bugs, it helps improve the plugin for everyone!
Version: 2.4.1
Very Active and helpful Developer, he's a nice guy and even when he's offline and you dont expect any help for the next few hours his status just switches to Online and you get the help you needed. triton itself works flawlessly, it does what you expect it to do perfectly. Very useful Resource!
Thanks a lot!
Reviews mean a lot to me and I'm glad to hear positive things :D
Version: 2.4.0
I would really like more plugins like this on spigotmc, because I hate configuring plugins through config files, and this is more intuitive. Developer is really active.
I would recommend 100%
Very great resource! Developer gives me quick support and also fix for big problem. Triton works almost everywhere! (Tried Citizens, but they do not want be translated :( ) Tried at CraftingStore in-game, Holograms, DeluxeMenus and everywhere it works! I only recommend this plugin for translating! Worth price!
A vital plugin in any multilingual server. It's insane to ask every author to translate their plugin, it's much more reasonable to handle it centralized with Triton.
The developer is friendly and dedicated, if you have doubts but are truly dedicated about your server, then just go ahead and buy it. You won't regret it.
Thanks for your review!
Not everyone thinks it's easy to configure, so I'm glad you think that way.
With MLP v1 you'll have a web interface, so it will be a lot easier!
Version: 0.5.3
Every time, getting better and better.
Extremely recommended plugin for everyone. :)
Quite a powerful plugin! It helps me a lot! btw can I advertise this to a Chinese Minecraft forum MCBBS? I promise that I'll NEVER leak the jar file, I can teach Chinese players how to use it and translate the config into Chinese. Of course I'll mark you as the author and show them your spigotmc page to let them know where to buy it. Can I ?
Glad to hear that! :D
It's really good for me to receive bugs, meaning I can fix them and make the plugin better!
Feel free to contact me if you find more!
Version: 0.2.5c
It works flawlessly, very fast.
Quick and easy setup.
Good job. I recommend it to everyone. .
I'm working on it.
About the FeatherBoard support, I'm currently adding support for the Placeholder API, so you should be able to use it with almost any plugin that isn't supported yet.
Version: 0.2.3c
I really like this plugin, I even started to think that $ 9 is not worth the price, the plugin 100% work, recommend the purchase!
Thanks! I hope you are enjoying it! As I said on @xXTsunami27Xx review, I've been inactive for a while, but now I'm back, so I hope I'll be able to keep it up-to-date.
Version: 0.2.3
The developer is very active, and constantly updated, plugin 100% recommended.
The plugin works fine, and all the current features are working.
Thanks! I've stopped updating the plugin for a while, but I'll try to see if I can get back on the active. I'll do my best to keep it up-to-date and with awesome features.
Version: 0.2.2b
Fantastic plugin. 10/10 would recommend. Totally worth the $9.
Can't wait for the language item update.
Without thinking about it, this is 100% the best plugin out there. took me some time to figure out how the args with placeholders work but currently i wouldnt work without it, even translated everything for my staff to have the best you can get. Would recommend!
BTW, $9 for this isn't expensive at all if you can afford it. Just do it ;)
Thanks for your suggestions. I'm planning to add support for almost everything on Minecraft. As I said in the discussion section, I'll update it this Thursday.
Version: 0.0.3
This plugin is just beautiful!
The support and well
Works great on a network