From 6b0202491ab6a06636d80c089b7d58be10005162 Mon Sep 17 00:00:00 2001 From: Robert Storlind Date: Fri, 17 Apr 2015 17:17:34 +0200 Subject: [PATCH] Handle Bukkit and Canary. COLOR_CHAR introduced MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NOTE: I have tested this code on Canary only. 1. Canary's events.chat introduced. 2. The COLOR_CHAR (ยง) was a real mystery until I found the answer in string-exts.js :) --- docs/Anatomy-of-a-Plugin.md | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/docs/Anatomy-of-a-Plugin.md b/docs/Anatomy-of-a-Plugin.md index f2fb5d6..67a24e5 100644 --- a/docs/Anatomy-of-a-Plugin.md +++ b/docs/Anatomy-of-a-Plugin.md @@ -56,16 +56,23 @@ var colors = ['black', 'blue', 'darkgreen', 'darkaqua', 'darkred', 'brightgreen', 'aqua', 'red', 'pink', 'yellow', 'white']; var colorCodes = {}; +var COLOR_CHAR = '\u00a7'; for (var i =0;i < colors.length;i++) colorCodes[colors[i]] = i.toString(16); -events.asyncPlayerChat( function( evt ) { +var addColor = function( evt ) { var player = evt.player; var playerChatColor = store.players[ player.name ]; if ( playerChatColor ) { - evt.message = '§' + colorCodes[ playerChatColor ] + evt.message; + evt.message = COLOR_CHAR + colorCodes[ playerChatColor ] + evt.message; } -}); +}; + +if (__plugin.bukkit) { + events.asyncPlayerChat(addColor); +} else if (__plugin.canary) { + events.chat(addColor); +}; ``` The next step is to declare a lookup table of colors / names and add an event @@ -124,16 +131,24 @@ var colors = ['black', 'blue', 'darkgreen', 'darkaqua', 'darkred', 'brightgreen', 'aqua', 'red', 'pink', 'yellow', 'white']; var colorCodes = {}; +var COLOR_CHAR = '\u00a7'; for (var i =0;i < colors.length;i++) colorCodes[colors[i]] = i.toString(16); -events.asyncPlayerChat( function( evt ) { +var addColor = function( evt ) { var player = evt.player; var playerChatColor = store.players[ player.name ]; if ( playerChatColor ) { - evt.message = '§' + colorCodes[ playerChatColor ] + evt.message; + evt.message = COLOR_CHAR + colorCodes[ playerChatColor ] + evt.message; } -}); +}; + +if (__plugin.bukkit) { + events.asyncPlayerChat(addColor); +} else if (__plugin.canary) { + events.chat(addColor); +}; + function chat_color( params, sender ){ var color = params[0]; if (colorCodes[color]){ @@ -143,6 +158,7 @@ function chat_color( params, sender ){ echo(sender, 'valid colors: ' + colors.join(', ')); } } + command(chat_color, colors); ```