comparison plugins/roulette/roulette.js @ 146:175bc5d41cc4

Plugin roulette: use new format section, #410
author David Demelier <markand@malikania.fr>
date Thu, 19 May 2016 22:29:15 +0200
parents ce3e96deb9e4
children 52affa4ade71
comparison
equal deleted inserted replaced
145:410f71eb9237 146:175bc5d41cc4
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */ 17 */
18 18
19 // Modules.
19 var Logger = Irccd.Logger; 20 var Logger = Irccd.Logger;
20 var Plugin = Irccd.Plugin; 21 var Plugin = Irccd.Plugin;
21 var Server = Irccd.Server; 22 var Server = Irccd.Server;
22 var Util = Irccd.Util; 23 var Util = Irccd.Util;
23 24
24 /* Plugin information */ 25 // Plugin information.
25 info = { 26 info = {
26 author: "David Demelier <markand@malikania.fr>", 27 author: "David Demelier <markand@malikania.fr>",
27 license: "ISC", 28 license: "ISC",
28 summary: "A russian roulette for IRC", 29 summary: "A russian roulette for IRC",
29 version: "@IRCCD_VERSION@" 30 version: "@IRCCD_VERSION@"
31 };
32
33 /**
34 * Formats for writing.
35 */
36 Plugin.format = {
37 "lucky": "#{nickname}, you're lucky this time",
38 "shot": "HEADSHOT"
30 }; 39 };
31 40
32 function Gun(server, channel) 41 function Gun(server, channel)
33 { 42 {
34 this.server = server; 43 this.server = server;
39 48
40 /** 49 /**
41 * Map of games. 50 * Map of games.
42 */ 51 */
43 Gun.map = {}; 52 Gun.map = {};
44
45 /**
46 * Formats for writing.
47 */
48 Gun.formats = {
49 "lucky": "#{nickname}, you're lucky this time",
50 "shot": "HEADSHOT"
51 };
52 53
53 /** 54 /**
54 * Search for an existing game. 55 * Search for an existing game.
55 * 56 *
56 * @param server the server object 57 * @param server the server object
87 /** 88 /**
88 * Load all formats. 89 * Load all formats.
89 */ 90 */
90 Gun.loadFormats = function () 91 Gun.loadFormats = function ()
91 { 92 {
92 for (var key in Gun.formats) { 93 // --- DEPRECATED ------------------------------------------
94 //
95 // This code will be removed.
96 //
97 // Since: 2.1.0
98 // Until: 3.0.0
99 // Reason: new [format] section replaces it.
100 //
101 // ----------------------------------------------------------
102 for (var key in Plugin.format) {
93 var optname = "format-" + key; 103 var optname = "format-" + key;
94 104
95 if (typeof (Plugin.config[optname]) !== "string") 105 if (typeof (Plugin.config[optname]) !== "string")
96 continue; 106 continue;
97 107
98 if (Plugin.config[optname].length === 0) 108 if (Plugin.config[optname].length === 0)
99 Logger.warning("skipping empty '" + optname + "' format"); 109 Logger.warning("skipping empty '" + optname + "' format");
100 else 110 else
101 Gun.formats[key] = Plugin.config[optname]; 111 Plugin.format[key] = Plugin.config[optname];
102 } 112 }
103 } 113 }
104 114
105 Gun.prototype.shot = function () 115 Gun.prototype.shot = function ()
106 { 116 {
129 139
130 if (!game) 140 if (!game)
131 game = Gun.create(server, channel); 141 game = Gun.create(server, channel);
132 142
133 if (game.shot()) { 143 if (game.shot()) {
134 server.kick(Util.splituser(origin), channel, Util.format(Gun.formats["shot"], kw)); 144 server.kick(Util.splituser(origin), channel, Util.format(Plugin.format["shot"], kw));
135 Gun.remove(game); 145 Gun.remove(game);
136 } else { 146 } else {
137 kw.count = (6 - game.index).toString(); 147 kw.count = (6 - game.index).toString();
138 server.message(channel, Util.format(Gun.formats["lucky"], kw)); 148 server.message(channel, Util.format(Plugin.format["lucky"], kw));
139 } 149 }
140 } 150 }