ReMap
What is ReMap?
ReMap is a translation-plugin. It can translate itself, other plugins and even Bukkit into any language. WorldEdit in Norwegian? Swedish command names for WorldGuard? Profanity filters? Anything related to translations and replacements in the chat can be done using this plugin.
ReMap is currently in a beta-state, awaiting bug reports and feature requests.
In short - what can ReMap do?
- Translate any plugin into any language
- Add new command aliases to any existing commands
- Make a single command trigger multiple actions
- Modify any chat message sent by either players or the server itself
- Block commands
Dependencies?
ReMap depend on ProtocolLib to hook into chat messages sent by the server. It uses the PlayerCommandPreprocessEvent to translate commands. ProtocolLib is a "soft dependency", which means that ReMap will function without it, but swaps and bleeps will become disabled (learn what that means in the tutorial).
Basically, if you run ReMap without ProtocolLib, you can only use command-related features, like changing command names, adding aliases, auto-replies and such. ProtocolLib does not require any kind of setup. Just download it, and ReMap will put it to good use automatically.
How do I get ReMap up and running?
To get started quickly, head over to the quick start guide. To explore the full power of ReMap, read the detailed tutorial.
Does ReMap have any commands or permissions?
Yes, it does.
Commands
- /remap - Display this command list.
- /remap block - Toggle command blocking. When enabled, only remapped commands will work.
- /remap message - Change the message sent to players who are using a blocked command. Can be empty.
- /remap reload - Reloads configuration and translation files.
- /remap status - Display some stats.
Note: For safety reasons, "/remap block" can still be used when command blocking is enabled. However, it will act as if it's blocked if the client does not have permission to turn it off.
Permissions
ReMap accept commands from players with the "remap" permission node as well as server operators (OP).
How does ReMap handle permissions for remapped commands?
ReMap executes remapped commands as if they were executed by the player. If the player doesn't have permission, the usual permission-message for that command is displayed, if any.
Source code?
Visit GitHub.
Recent changes
This list only contains important stuff. For a more technical and complete list of changes for each version, please read the log attached to each file in the download section.
- ProtocolLib is now a "soft dependency". ReMap can function without it. Sort of.
- Words and phrases can now be removed, not just replaced.
Yeah, he's back! Hope he updates it.
The last time he came to bukkit was in May so yeah this might be dead.
@Monezombie
I posted that ticket almost 3 months ago, still no fix, while it still works, this plugin may be dead.
@tingeel
Same problem even with the last version :/ , I just saw someone with the same problem in the ticket section, so I'll just wait for the new version to come out hoping this will be fixed
the plugin is working fine but each time a player login to my server there is an error
[18:24:35] [Server thread/ERROR]: [ReMap] Unhandled exception occured in onPacketSending(PacketEvent) for ReMap java.lang.ClassCastException: java.lang.String cannot be cast to org.json.simple.JSONObject at com.kiwhen.remap.ChatListener$1.onPacketSending(ChatListener.java:43) [ReMap.jar:?] at com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener(SortedPacketListenerList.java:195) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:149) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:612) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending(PacketFilterManager.java:588) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.NettyProtocolInjector.packetQueued(NettyProtocolInjector.java:267) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.NettyProtocolInjector.onPacketSending(NettyProtocolInjector.java:235) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector.processSending(ChannelInjector.java:260) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector.access$300(ChannelInjector.java:51) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector$3.handleScheduled(ChannelInjector.java:236) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector$3.onMessageScheduled(ChannelInjector.java:213) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelProxy$2.schedulingRunnable(ChannelProxy.java:100) [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.EventLoopProxy.execute(EventLoopProxy.java:76) [ProtocolLib.jar:?] at net.minecraft.server.v1_7_R3.NetworkManager.b(NetworkManager.java:122) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.NetworkManager.handle(NetworkManager.java:100) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.PlayerConnection.sendPacket(PlayerConnection.java:740) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer.sendRawMessage(CraftPlayer.java:147) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer.sendMessage(CraftPlayer.java:154) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at com.earth2me.essentials.textreader.TextPager.showPage(TextPager.java:106) [Essentials.jar:?] at com.earth2me.essentials.EssentialsPlayerListener$2.run(EssentialsPlayerListener.java:242) [Essentials.jar:?] at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftTask.run(CraftTask.java:53) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:600) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] [18:24:35] [Server thread/WARN]: [ProtocolLib] Warning: Cannot convert to a String with Apache: null [18:24:35] [Server thread/ERROR]: Parameters: { a = (("TextComponent{text='', siblings=[], style=Style{hasParent=false, color=null, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null}}")), b = true, timestamp = 1402611875850 }
I have this set in config: bleep: '[BlockRegeneration]': '&7[&cMelo&8Co&7]'
And for some reason it is replacing almost every letter of anything any plugin or person says with '&7[&cMelo&8Co&7]'
0.4.2 on ProtocolLib 3.3.1 and 3.4.0 With Spigot-1475 (MC: 1.7.9)
EDIT: Adding quotes in a different program fixes it, but stops all bleeps from working completely, removing the quotes causes the bug again.
@Rothendras
The upcoming version will support these features. I'm rewriting the whole "translation language" to allow for hooking specific events to specific actions, also taking permissions into account. Interestingly, this will allow for multi-language support, using permission nodes to define a user's language.
It's a bit of a jump from the current version, which is why it has taken a while to get it up and running. Working on it, though!
Thank you for your interest in ReMap!
A really good & essential plugin! I would follow the evolution!
But, I have one question :p - Can we block certain commands, and not all those not remap ? Or, just let activate all commands for OPs or Admins perm group ?
@technowix
Oh no, not dead at all! Just a bit late. There's some serious updating at work.
This amazing plugin is dead ? :/
@Geoneo97
To avoid this, you can wrap your search patterns in "quotes".
Something like "Error: Not enough whatshisface": "Your text"
ähhm how can i remap a :
also example i will change
Error: No enaught Money to No Money
it doesnt work because of the :
Hi folks, sorry for taking this long. I've had some major computer issues of late. The "quick" fix will be available real soon. The chat protocol for Minecraft has changed substantially since 1.6, and I've had to redo everything that deals with ProtocolLib. That part's now done, and 0.4.2 is awaiting approval by the BukkitDev mods.
The requested features will be available in the upcoming ReMap 0.5.
The epic thing would be a "mapping perm", when you have "remap.mapping.<file.txt>" the remapping in the folder is enable for you :) !
(sorry for my bad english >_>"")
Only an information: ProtocollLib is out for 1.7.2 :) Sorry if you already know it
@ryan_the_leach
The plugin has bigger potential than translating commands, though, as the remap can be used for more friendly commands or 'shortcuts.'
I personally hope you'll update soon, though I understand that it takes time. :)
That would certainly reduce the need for this plugin, provided that all other plugin developers actually implement custom languages. I will however maintain ReMap for as long at it is needed. Might just implement a multi-language support using this 1.7.2-feature, too, to compensate for plugins that do not implement this. ^^
Just a heads up, 1.7.2 introduced a packet that contains the settings menu, this means you can get the language that a player is using, rather then use commands to set a users language!
I'm kind of waiting for the 1.7.2-version of ProtocolLib. I can try to push an 1.7.2 version of ReMap from the current build (no new functions), but I'm pretty sure that the swaps and such won't work until we get a working ProtocolLib build.
Long story short; I'm on it! Thank you! :-D
On my 1.7.2 craftbukkit server my swapped messages don't work anymore.. Pls help me