Java 类org.bukkit.conversations.Prompt 实例源码
项目:ShankShock-Core
文件:ShopItemPrompt.java
@Override
protected Prompt acceptValidatedInput(ConversationContext arg0, String arg1) {
if (arg1.equals("back")) {
return new ShopCategoryChooser(plugin);
}
Item i = itemCache.get(Integer.parseInt(arg1));
arg0.setSessionData("item", itemCache.get(Integer.parseInt(arg1))
.getItemType());
if (inventory.contains(i.getItemType())) {
arg0.setSessionData("free", true);
} else {
arg0.setSessionData("free", false);
}
return new ItemInfoPrompt(plugin);
}
项目:ShankShock-Core
文件:SilverTransferItem.java
@Override
protected Prompt acceptValidatedInput(ConversationContext arg0, Number arg1) {
if (arg1.intValue() < 0) {
return new SilverTransferItem(plugin);
}
if (arg1.intValue() > sply.getCurrency()) {
return new SilverTransferItem(plugin);
}
Player dply = (Player) arg0.getSessionData("player");
SPlayer dsply = plugin.players.get(dply.getName());
dsply.sendMessage(sply.getPlayer().getDisplayName() + " (" + sply.getPlayer().getName() + ") just sent you " + arg1.intValue() + " silver.");
dsply.addCurrency(arg1.intValue(), false);
sply.delCurrency(arg1.intValue());
arg0.getForWhom().sendRawMessage(
ChatColor.AQUA + "Inventory: Transferred "
+ NumberFormat.getInstance().format(arg1.intValue())
+ " silver to " + dply.getName() + ".");
return Prompt.END_OF_CONVERSATION;
}
项目:ShankShock-Core
文件:InventoryStart.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context,
String input) {
int option = Integer.parseInt(input);
Player ply = (Player) context.getForWhom();
SPlayer sply = plugin.players.get(ply.getName());
if (option == 3) {
return new AwardList(plugin);
} else if (option == 2) {
return new SilverTransferPlayerPrompt(plugin);
} else if (option == 1) {
if (sply.getInventoryStore().getInventory().size() == 0) {
context.getForWhom().sendRawMessage(
ChatColor.AQUA + "Inventory: " + ChatColor.RED
+ "You have no items. Buy some to fix this!");
return new InventoryStart(plugin);
}
return new ItemList(plugin);
}
return new InventoryStart(plugin);
}
项目:Demigods3
文件:Administration.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context, String message) {
if ("menu".equalsIgnoreCase(message)) {
// Return to main menu
return new StartAdministration();
} else {
// Save the chosen structure to the data
context.setSessionData("chosen_structure", getStructureChoices(context).get(Integer.parseInt(message)));
// Return next menu depending on the chosen structure
if (((DemigodsStructureType) context.getSessionData("chosen_structure")).getDesigns().size() > 1) {
return new Design();
} else {
return new Selection();
}
}
}
项目:TeamSparkle
文件:InvitePrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input)
{
PlayerData data = plugin.getPlayerDataCache().getData(player);
if (data.getInvited().contains(input.toLowerCase()))
{
player.sendRawMessage(FormatUtil.format("&cError: &4" + plugin.getMessage("already_invited")));
return Prompt.END_OF_CONVERSATION;
}
OfflinePlayer invite = Util.matchOfflinePlayer(input);
if (invite == null || ! invite.hasPlayedBefore())
{
data.getInvited().add(input.toLowerCase());
player.sendRawMessage(FormatUtil.format(plugin.getPrefix() + plugin.getMessage("invite_confirmed"), input));
}
else
{
player.sendRawMessage(FormatUtil.format("&cError: &4" + plugin.getMessage("has_played_before")));
}
return Prompt.END_OF_CONVERSATION;
}
项目:EchoPet
文件:NamePrompt.java
@Override
public Prompt acceptInput(ConversationContext conversationContext, String s) {
if (s.length() > 32) {
conversationContext.getForWhom().sendRawMessage(EchoPet.getPrefix() + Lang.PET_NAME_TOO_LONG.toString());
return this;
}
conversationContext.setSessionData("name", s);
return new NameSuccessPrompt(this.pet, this.admin);
}
项目:AnnihilationPro
文件:SingleQuestionPrompt.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context, String input)
{
if(input.equalsIgnoreCase("quit") || input.equalsIgnoreCase("stop") || input.equalsIgnoreCase("end"))
return Prompt.END_OF_CONVERSATION;
if(listener.onAnswer(input))
return Prompt.END_OF_CONVERSATION;
else
return this;
}
项目:SonarPet
文件:NamePrompt.java
@Override
public Prompt acceptInput(ConversationContext conversationContext, String s) {
if (s.length() > 32) {
conversationContext.getForWhom().sendRawMessage(EchoPet.getPrefix() + Lang.PET_NAME_TOO_LONG.toString());
return this;
}
conversationContext.setSessionData("name", s);
return new NameSuccessPrompt(this.pet, this.admin);
}
项目:parchment
文件:ParchmentCommandExecutor.java
@Override
public Prompt acceptInput(final ConversationContext arg0, String arg1) {
if ( arg1.startsWith("/") ) arg1 = arg1.substring(1);
if ( arg1.equals("exit") || arg1.equals("quit") || arg1.equals("stop") ) return null;
Parameter r = null;
buffer.append(arg1);
buffer.append("\n");
String test = buffer.toString();
if ( TCLUtils.isCompleteStatement(test) ) {
buffer = new StringBuilder();
ThreadManager.instance().submitWork(new BranchEvaluationResult(new StringParameter(test), ctx, new EvaluationResult.EvalCallback() {
public EvaluationResult result(EvaluationResult e) {
if ( e.getCode() == Code.ERROR ) {
arg0.getForWhom().sendRawMessage(ChatColor.RED + "Error: " + e.getValue().asString());
}
if ( e.getValue() != null ) ctx.put("ans", e.getValue());
else ctx.put("ans", Parameter.from(""));
return EvaluationResult.OK;
}
}));
}
return this;
}
项目:HoloAPI
文件:ScriptBuilderPrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
if (input.equalsIgnoreCase("DONE")) {
LangSetting.send(context.getForWhom(), "}");
return new ScriptBuilderSuccess(this.lines, this.scriptName);
}
this.lines.add(currentlyEditing, input);
return this;
}
项目:HoloAPI
文件:InputPrompt.java
@Override
protected Prompt acceptValidatedInput(ConversationContext conversationContext, String s) {
Object findLoc = conversationContext.getSessionData("findloc");
if (findLoc != null && ((Boolean) findLoc)) {
if (s.contains(" ")) {
String[] split = s.split("\\s");
if (split.length == 4) {
if (Bukkit.getWorld(split[0]) != null) {
try {
conversationContext.setSessionData("location", new Location(Bukkit.getWorld(split[0]), Integer.parseInt(split[1]), Integer.parseInt(split[2]), Integer.parseInt(split[3])));
return this.successPrompt;
} catch (NumberFormatException e) {
conversationContext.setSessionData("fail_int", true);
}
} else {
conversationContext.setSessionData("fail_world", true);
}
} else {
conversationContext.setSessionData("fail_format", true);
}
} else {
conversationContext.setSessionData("fail_format", true);
}
} else if (s.equalsIgnoreCase("DONE")) {
conversationContext.setSessionData("lines", this.lines.toArray(new String[this.lines.size()]));
if (conversationContext.getSessionData("location") == null) {
if (conversationContext.getForWhom() instanceof Player) {
conversationContext.setSessionData("location", ((Player) conversationContext.getForWhom()).getLocation());
return this.successPrompt;
} else {
conversationContext.setSessionData("findloc", true);
}
} else {
return this.successPrompt;
}
} else {
this.lines.add(s);
}
return new InputPrompt(this.lines, this.successPrompt, s);
}
项目:HoloAPI
文件:SimpleInputPrompt.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context, String input) {
Prompt next = this.function.function(context, input);
if (next != null) {
return next;
}
return this.successPrompt != null ? this.successPrompt : new SimpleInputSuccessPrompt(this.function.getSuccessMessage(context, input));
}
项目:ShankShock-Core
文件:ItemSellbackConfirmation.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context,
boolean input) {
if (input) {
final SPlayer ply = plugin.players.get(((Player) context.getForWhom()).getName());
final Item i = (Item) context.getSessionData("itemobj");
final boolean clearChatColorCopy = clearChatColor;
final boolean clearChatTitleCopy = clearChatTitle;
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
@Override
public void run() {
ply.addCurrency(refund, false);
ply.saveCurrency();
ply.getInventoryStore().delItem(i);
if (clearChatColorCopy) {
ply.setChatColor("");
}
if (clearChatTitleCopy) {
ply.setChatPrefix("");
}
plugin.conn.cacheChatFormat(ply);
ply.saveAccount();
}
});
}
return new ItemList(plugin);
}
项目:ShankShock-Core
文件:WeatherChangePrompt.java
@Override
protected Prompt acceptValidatedInput(ConversationContext arg0, String arg1) {
if (arg1.toLowerCase().equals("sunny")) {
arg0.setSessionData("storm", false);
} else {
arg0.setSessionData("storm", true);
}
return new FinalShopConfirmation(plugin);
}
项目:ShankShock-Core
文件:PlayerSelector.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context,
Player input) {
if (input.getWorld().getName().contains("stock")) {
context.getForWhom()
.sendRawMessage(
ChatColor.RED
+ "Player is in Pure, and can't be selected at this time.");
return new PlayerSelector(plugin);
}
context.setSessionData("player", input);
return new FinalShopConfirmation(plugin);
}
项目:ShankShock-Core
文件:MCItemAmountSelector.java
@Override
protected Prompt acceptValidatedInput(ConversationContext arg0, Number arg1) {
double discount = (Double) arg0.getSessionData("discount");
if (arg1.intValue() > 64 || arg1.intValue() < 1) {
return new MCItemAmountSelector(plugin);
}
if (arg1.intValue()
* (item.getItemCost() - (item.getItemCost() * discount)) > sply.getCurrency()) {
return new MCItemAmountSelector(plugin);
}
arg0.setSessionData("count", arg1.intValue());
return new FinalShopConfirmation(plugin);
}
项目:ShankShock-Core
文件:ItemInfo.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context,
String choice) {
if (choice.equalsIgnoreCase("use")) {
context.setSessionData("free", true);
item.runExtraData(context, plugin);
item.runPurchaseAnnoucement(context, plugin);
} else if (choice.equalsIgnoreCase("sell")) {
context.setSessionData("itemobj", item);
return new ItemSellbackConfirmation(plugin);
} else if (choice.equalsIgnoreCase("back")) {
return new ItemList(plugin);
}
return Prompt.END_OF_CONVERSATION;
}
项目:ShankShock-Core
文件:ItemList.java
@Override
protected Prompt acceptValidatedInput(ConversationContext arg0, String arg1) {
if (arg1.toLowerCase().equals("back")) {
return new InventoryStart(plugin);
}
int i = Integer.parseInt(arg1);
Item choice = items.get(i);
arg0.setSessionData("item", choice);
return new ItemInfo(plugin);
}
项目:ShankShock-Core
文件:AwardInfo.java
@Override
protected Prompt acceptValidatedInput(ConversationContext arg0, String arg1) {
if (arg1.toLowerCase().equals("back")
|| arg1.toLowerCase().equals("yes")) {
return new AwardList(plugin);
} else {
return new InventoryStart(plugin);
}
}
项目:ShankShock-Core
文件:AwardList.java
@Override
protected Prompt acceptValidatedInput(ConversationContext arg0, String arg1) {
int i = Integer.parseInt(arg1);
Award choice = awards.get(i);
arg0.setSessionData("award", choice);
return new AwardInfo(plugin);
}
项目:GoldRushPlugin
文件:OpenAccountPrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
if(input.equals("")) {
context.setSessionData(SessionConstants.ERROR, errorPrompt());
return new TryAgainPrompt(this);
}
if(context.getSessionData(SessionConstants.AUTO_NAME).equals(false)) {
Account newAccount = new CheckingAccount(input, 0, customer, bank, bank.getCheckingInterest());
bank.openAccount(customer, newAccount);
context.setSessionData(SessionConstants.OUTCOME, "Created account " + newAccount.accountName() + " with bank " + bank.getName());
}
return new OutcomePrompt(bank, teller, customer);
}
项目:GoldRushPlugin
文件:DepositPrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
int amount = 0;
if(input.equalsIgnoreCase("cancel")) return Prompt.END_OF_CONVERSATION;
if(NumberUtils.isNumber(input)) {
amount = Integer.valueOf(input);
if(amount <= 0) {
context.setSessionData(SessionConstants.ERROR, errorPrompt());
return new TryAgainPrompt(this);
}
} else {
context.setSessionData(SessionConstants.ERROR, errorPrompt());
return new TryAgainPrompt(this);
}
Account a = (Account) context.getSessionData(SessionConstants.ACCOUNT);
if(a.deposit(amount)) {
context.setSessionData(SessionConstants.OUTCOME, ChatColor.GREEN + "You have deposited " + "( " + amount + " )" +
ChatColor.GOLD + " Gold Nugget(s)" + ChatColor.RESET + "into your account.");
return new OutcomePrompt(bank, teller, customer);
} else {
context.setSessionData(SessionConstants.ERROR, "You do not have enough cash to deposit this amount!");
return new TryAgainPrompt(this);
}
}
项目:GoldRushPlugin
文件:AccountSelectorPrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
for(Account a : accounts) {
if(a.accountName().equalsIgnoreCase(input)) {
context.setSessionData(SessionConstants.ACCOUNT, a);
return (Prompt) context.getSessionData(SessionConstants.NEXT_PROMPT);
}
}
context.setSessionData(SessionConstants.ERROR, errorPrompt());
return new TryAgainPrompt(this);
}
项目:GoldRushPlugin
文件:WelcomePrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
switch (input) {
case "check balance":
context.setSessionData(SessionConstants.SELECTION, "check balance");
context.setSessionData(SessionConstants.NEXT_PROMPT, new CheckBalancePrompt(bank, teller, customer));
break;
case "withdraw":
context.setSessionData(SessionConstants.SELECTION, "withdraw");
context.setSessionData(SessionConstants.NEXT_PROMPT, new WithdrawPrompt(bank, teller, customer));
break;
case "deposit":
context.setSessionData(SessionConstants.SELECTION, "deposit");
context.setSessionData(SessionConstants.NEXT_PROMPT, new DepositPrompt(bank, teller, customer));
break;
case "transfer":
context.setSessionData(SessionConstants.SELECTION, "transfer");
break;
case "close account":
context.setSessionData(SessionConstants.SELECTION, "close");
break;
case "transfer account":
context.setSessionData(SessionConstants.SELECTION, "transfer account");
break;
case "open account":
context.setSessionData(SessionConstants.SELECTION, "open account");
context.setSessionData(SessionConstants.NEXT_PROMPT, new OpenAccountPrompt(bank, teller, customer));
return new AccountTypeSelectorPrompt(bank, teller, customer);
case "end":
case "stop":
case "//":
default:
return Prompt.END_OF_CONVERSATION;
}
return new AccountSelectorPrompt(bank, teller, customer);
}
项目:GoldRushPlugin
文件:WithdrawPrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
int amount = 0;
if(input.equalsIgnoreCase("cancel")) return Prompt.END_OF_CONVERSATION;
if(NumberUtils.isNumber(input)) {
amount = Integer.valueOf(input);
if(amount <= 0) {
context.setSessionData(SessionConstants.ERROR, errorPrompt());
return new TryAgainPrompt(this);
}
} else {
context.setSessionData(SessionConstants.ERROR, errorPrompt());
return new TryAgainPrompt(this);
}
Account a = (Account) context.getSessionData(SessionConstants.ACCOUNT);
if(a.withdraw(amount)) {
context.setSessionData(SessionConstants.OUTCOME, ChatColor.GREEN + "You have withdrawn " + "( " + amount + " )" +
ChatColor.GOLD + " Gold Nugget(s)" + ChatColor.RESET + "from your account.");
return new OutcomePrompt(bank, teller, customer);
} else {
context.setSessionData(SessionConstants.ERROR, "You do not have sufficient funds to complete this transaction.");
return new TryAgainPrompt(this);
}
}
项目:GoldRushPlugin
文件:ContinuePrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
if(input.equalsIgnoreCase("Yes")) {
context.setSessionData(SessionConstants.CONTINUE, true);
context.setSessionData(SessionConstants.WAIT, true);
return new WelcomePrompt(bank, teller, customer);
}
else if(input.equalsIgnoreCase("No")) return Prompt.END_OF_CONVERSATION;
else {
context.setSessionData(SessionConstants.ERROR, errorPrompt());
return new TryAgainPrompt(this);
}
}
项目:GoldRushPlugin
文件:TConfirmSendPrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
if(input.equalsIgnoreCase("confirm")) {
Telegram t = new Telegram();
t.sendTelegram(sender.getName(), recipient.getName(), contents.getPage(0));
}
return null;
}
项目:GoldRushPlugin
文件:TSendMessagePrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
switch (input) {
case "send":
case "end":
return END_OF_CONVERSATION;
default:
return new TryAgainPrompt(this);
}
}
项目:GoldRushPlugin
文件:TWelcomePrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
switch (input.toLowerCase()) {
case "check messages":
return new TCheckMessagePrompt();
case "send message":
return new TSendMessagePrompt();
case "exit":
return END_OF_CONVERSATION;
default: {
context.setSessionData(SessionConstants.ERROR, "Sorry, that is not an option. Please try again.");
return new TryAgainPrompt(this);
}
}
}
项目:GoldRushPlugin
文件:TContinuePrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
switch (input.toLowerCase()) {
case "yes":
case "no":
default:
return END_OF_CONVERSATION;
}
}
项目:GoldRushPlugin
文件:TCollectPrompt.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
switch (input.toLowerCase()) {
case "collect":
return new TCheckMessagePrompt();
case "exit":
return END_OF_CONVERSATION;
default:
return new TryAgainPrompt(this);
}
}
项目:KTP
文件:UHPrompts.java
@Override
public Prompt acceptInput(ConversationContext context, String input) {
if (input.length() > 16) {
context.getForWhom().sendRawMessage(ChatColor.RED+"Le nom de la team doit faire 16 caractères maximum.");
return this;
}
context.setSessionData("nomTeam", input);
return new TeamColorPrompt();
}
项目:KTP
文件:UHPrompts.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context,
String input) {
context.setSessionData("color", StringToChatColor.getChatColorByName(ChatColor.stripColor(input)));
p.createTeam((String) context.getSessionData("nomTeam"), (ChatColor) context.getSessionData("color"));
context.getForWhom().sendRawMessage(ChatColor.GRAY+"Team "+((ChatColor)context.getSessionData("color"))+context.getSessionData("nomTeam")+ChatColor.GRAY+" créée.");
return Prompt.END_OF_CONVERSATION;
}
项目:KTP
文件:UHPrompts.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context,
Player input) {
p.getTeam((String) context.getSessionData("nomTeam")).addPlayer(input);
context.getForWhom().sendRawMessage(ChatColor.GREEN+input.getName()+ChatColor.DARK_GREEN+" a été ajouté à l'équipe "+((ChatColor)context.getSessionData("color"))+context.getSessionData("nomTeam")+".");
return Prompt.END_OF_CONVERSATION;
}
项目:SparkTrail
文件:EffectInputPrompt.java
@Override
protected Prompt acceptValidatedInput(ConversationContext conversationContext, String s) {
if (this.particleType == ParticleType.FIREWORK) {
return this.successPrompt;
}
if (this.isSecondInput) {
return this.successPrompt;
} else {
return new EffectInputPrompt(this.particleType, this.data, this.blockData);
}
}
项目:Demigods3
文件:Administration.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context, String message) {
// Handle leaving
if ("leave".equalsIgnoreCase(message)) {
// Toggle everything off
Util.toggleAdministration((Player) context.getForWhom(), false, true);
return null;
}
// Otherwise return the chosen prompt
return Administration.Menu.getFromId(Character.toUpperCase(message.charAt(0))).getCategory();
}
项目:Demigods3
文件:Administration.java
@Override
protected Prompt acceptValidatedInput(ConversationContext context, String message) {
if ("menu".equalsIgnoreCase(message)) {
// Return to main menu
return new StartAdministration();
} else {
// Save the chosen structure to the data
context.setSessionData("chosen_design", getDesignChoices(context).get(Integer.parseInt(message)));
// Send them to the selection
return new Selection();
}
}
项目:Demigods3
文件:Administration.java
private static Prompt success(ConversationContext context) {
// All good, toggle wand off
Util.toggleStructureWand((Player) context.getForWhom(), false);
// Save notification
saveNotification(context, Menu.class.getSimpleName(), English.ADMINISTRATION_STRUCTURE_GENERATED.getLine());
// Set data to null
context.setSessionData("structurewand_loc1", null);
context.setSessionData("structurewand_loc2", null);
return new Menu();
}
项目:MondoChest
文件:CheckerConvo.java
@SuppressWarnings("unused")
@Override
protected Prompt acceptValidatedInput(ConversationContext ctx, String input) {
String[] parts = input.split(" ", 3);
MessageWithStatus response = null;
String cmd = parts[0].toLowerCase();
return this;
}
项目:MondoChest
文件:AccessConvo.java
@Override
protected Prompt acceptValidatedInput(ConversationContext ctx, String input) {
String[] parts = input.split(" ", 3);
Player player = (Player) ctx.getForWhom();
MessageWithStatus response = null;
String cmd = parts[0].toLowerCase();
if (cmd.startsWith("/")) cmd = cmd.substring(1);
try {
if (cmd.equals("list")) {
int page = (parts.length == 2)? Integer.parseInt(parts[1]) : 1;
response = listAccess(player, page);
} else if (cmd.equals("add")) {
if (parts.length >= 2) {
String role = (parts.length == 3)? parts[2] : "user";
response = addAccess(player, parts[1], role);
} else {
response = new BasicMessage("Usage: add <name> [<role>]", Status.USAGE);
}
} else if (cmd.equals("remove")) {
if (parts.length == 2) {
response = removeAccess(player, parts[1]);
} else {
response = new BasicMessage("Usage: remove <name>", Status.USAGE);
}
} else if (cmd.equals("quit")) {
return null;
}
} catch (MondoMessage m) {
response = m;
}
if (response != null) {
ctx.setSessionData("next_response", response);
}
return this;
}