From 53d04fade000be14ae866c7324edd5b5dffa9bcd Mon Sep 17 00:00:00 2001 From: walterhiggins Date: Sun, 13 Oct 2013 21:08:04 +0100 Subject: [PATCH] A new simple number-guessing game to try out the Bukkit Conversation API --- src/main/javascript/minigames/NumberGuess.js | 48 ++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/main/javascript/minigames/NumberGuess.js diff --git a/src/main/javascript/minigames/NumberGuess.js b/src/main/javascript/minigames/NumberGuess.js new file mode 100644 index 0000000..b70d931 --- /dev/null +++ b/src/main/javascript/minigames/NumberGuess.js @@ -0,0 +1,48 @@ +/* + A basic number-guessing game that uses the Bukkit Conversation API. + */ +ready(function(){ + + global.GuessTheNumber = function() + { + importPackage(org.bukkit.conversations); + + var number = Math.ceil(Math.random() * 10); + + var prompt = new Prompt() + { + getPromptText: function(ctx){ + var hint = ""; + var h = ctx.getSessionData("hint"); + if (h){ + hint = h; + } + return hint + "Think of a number between 1 and 10"; + }, + acceptInput: function(ctx, s) + { + s = s.replace(/^[^0-9]+/,""); // strip leading non-numeric characters (e.g. '/' ) + s = parseInt(s); + if (s == number){ + setTimeout(function(){ + ctx.forWhom.sendRawMessage("You guessed Correct!"); + },100); + return null; + }else{ + if (s < number) + ctx.setSessionData("hint","too low\n"); + if (s > number) + ctx.setSessionData("hint","too high\n"); + return prompt; + } + }, + blocksForInput: function(ctx){ return true; } + }; + var cf = new ConversationFactory(__plugin); + var conv = cf.withModality(true) + .withFirstPrompt(prompt) + .withPrefix(new ConversationPrefix(){ getPrefix: function(ctx){ return "[1-10] ";} }) + .buildConversation(self); + conv.begin(); + }; +});