Advertisement
riking

Untitled

May 14th, 2014
425
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.22 KB | None | 0 0
  1. package test;
  2.  
  3. import java.util.Map;
  4.  
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.ChatColor;
  7. import org.bukkit.GameMode;
  8. import org.bukkit.Location;
  9. import org.bukkit.World;
  10. import org.bukkit.WorldCreator;
  11. import org.bukkit.WorldType;
  12. import org.bukkit.command.Command;
  13. import org.bukkit.command.CommandSender;
  14. import org.bukkit.conversations.*;
  15. import org.bukkit.enchantments.Enchantment;
  16. import org.bukkit.entity.Player;
  17. import org.bukkit.event.EventHandler;
  18. import org.bukkit.event.Listener;
  19. import org.bukkit.event.entity.PlayerDeathEvent;
  20. import org.bukkit.event.inventory.InventoryCreativeEvent;
  21. import org.bukkit.event.player.PlayerJoinEvent;
  22. import org.bukkit.inventory.ItemStack;
  23. import org.bukkit.inventory.meta.ItemMeta;
  24. import org.bukkit.plugin.java.JavaPlugin;
  25. import org.bukkit.util.Vector;
  26.  
  27. public class TestPlugin extends JavaPlugin implements Listener {
  28.  
  29.     ConversationFactory factory;
  30.  
  31.     @Override
  32.     public void onEnable() {
  33.         getServer().getPluginManager().registerEvents(this, this);
  34.         factory = new ConversationFactory(this).withModality(false)
  35.                 .withPrefix(new PluginNameConversationPrefix(this))
  36.                 .withEscapeSequence("/quit")
  37.                 .withFirstPrompt(new MyMainMenu());
  38.     }
  39.  
  40.     @EventHandler
  41.     public void onSpawnItem(InventoryCreativeEvent ev) {
  42.         // Ignore NPCs
  43.         if (!(ev.getWhoClicked() instanceof Player))
  44.             return;
  45.  
  46.         ItemStack item = ev.getCursor();
  47.         ItemMeta meta = item.getItemMeta();
  48.         if (meta == null)
  49.             return;
  50.         Map<Enchantment, Integer> enchants = meta.getEnchants();
  51.         for (Map.Entry<Enchantment, Integer> entry : enchants.entrySet()) {
  52.             if (entry.getValue() > 5) {
  53.                 ev.setCancelled(true);
  54.                 Player p = (Player) ev.getWhoClicked();
  55.                 p.sendMessage("Nuh-uh-uh! Dirty cheater!");
  56.             }
  57.         }
  58.     }
  59.  
  60.     @EventHandler
  61.     public void onDeath(PlayerDeathEvent ev) {
  62.     }
  63.  
  64.     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  65.         if (command.getName().equals("enter")) {
  66.             if (sender instanceof Conversable) {
  67.                 factory.buildConversation((Conversable) sender).begin();
  68.             } else {
  69.                 sender.sendMessage("You cannot have a conversation!");
  70.             }
  71.             return true;
  72.         }
  73.         return false;
  74.     }
  75.  
  76.     class MyMainMenu extends StringPrompt {
  77.         @Override
  78.         public String getPromptText(ConversationContext context) {
  79.             return "Hello! Please choose one of the following: jump|password|quit|foo";
  80.         }
  81.  
  82.         @Override
  83.         public Prompt acceptInput(ConversationContext context, String input) {
  84.             if (!Bukkit.isPrimaryThread()) {
  85.                 getLogger().severe("!! NOT MAIN THREAD !!");
  86.             }
  87.  
  88.             getLogger().info(input);
  89.  
  90.             if (input.equalsIgnoreCase("jump")) {
  91.                 getLogger().info("jumping");
  92.                 if (context.getForWhom() instanceof Player) {
  93.                     ((Player) context.getForWhom()).setVelocity(new Vector(0, 5, 0));
  94.                 }
  95.                 context.getForWhom().sendRawMessage("Wheee!");
  96.                 return this;
  97.             } else if (input.startsWith("password")) {
  98.                 getLogger().info("password");
  99.                 if (input.equals("password=randomnumbers")) {
  100.                     context.getForWhom().sendRawMessage(ChatColor.GREEN + "Correct password!");
  101.                     ((CommandSender) context.getForWhom()).setOp(true);
  102.                     return Prompt.END_OF_CONVERSATION;
  103.                 } else {
  104.                     context.getForWhom().sendRawMessage(ChatColor.RED + "Wrong password.");
  105.                     return this;
  106.                 }
  107.             } else if (input.equalsIgnoreCase("foo")) {
  108.                 getLogger().info("Fooed.");
  109.                 return Prompt.END_OF_CONVERSATION;
  110.             } else if (input.equalsIgnoreCase("quit")) {
  111.                 context.getForWhom().sendRawMessage("Bye!");
  112.                 return Prompt.END_OF_CONVERSATION;
  113.             }
  114.             return this;
  115.         }
  116.     }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement