Advertisement
Guest User

CommandWorldspawns

a guest
Jul 7th, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.12 KB | None | 0 0
  1. package me.greenadine.worldspawns;
  2.  
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.Location;
  5. import org.bukkit.Sound;
  6. import org.bukkit.command.Command;
  7. import org.bukkit.command.CommandExecutor;
  8. import org.bukkit.command.CommandSender;
  9. import org.bukkit.entity.Player;
  10.  
  11. import net.minecraft.server.v1_9_R2.Material;
  12.  
  13. public class CommandWorldspawns implements CommandExecutor {
  14.  
  15.     private Main main;
  16.     SettingsManager settings = SettingsManager.getInstance();
  17.     private String prefix = Main.prefix;
  18.     private String noperm = Main.noperm;
  19.  
  20.     public CommandWorldspawns(Main main) {
  21.         this.main = main;
  22.     }
  23.  
  24.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  25.         if(!(sender instanceof Player)) {
  26.             CommandSender c = sender;
  27.             if(args.length == 0) {
  28.                 c.sendMessage("");
  29.                 return true;
  30.             }
  31.         } else {
  32.             Player p = (Player) sender;
  33.             if(!p.hasPermission(new Permissions().command_main)) {
  34.                 p.sendMessage(prefix + noperm);
  35.                 return true;
  36.             }
  37.             if(args.length == 0) {
  38.                 p.sendMessage(prefix + ChatColor.WHITE + "Please use " + ChatColor.GRAY + "/" +  label + " help" + ChatColor.WHITE + " to get a list of commands.");
  39.                 return true;
  40.             }
  41.             else if(args.length == 1) {
  42.                 if(args[0].equals("help")) {
  43.                     p.sendMessage(ChatColor.BLUE + "--> " + ChatColor.WHITE + "WorldSpawns Help" + ChatColor.BLUE + " <--");
  44.                     p.sendMessage(ChatColor.DARK_GRAY + "NOTE: [] = required, <> = optional.");
  45.                     sendCmd(p, label, "help", "Shows this list of commands.");
  46.                     sendCmd(p, label, "spawns", "Shows the list of spawn management commands.");
  47.                     sendCmd(p, label, "reload", "Reload the plugin and it's config.");
  48.                     sendCmd(p, label, "check [world]", "Check where the spawn is located of a world.");
  49.                     sendCmd(p, label, "reset", "Reset the spawn of all worlds.");
  50.                     p.sendMessage(ChatColor.DARK_GRAY + "" + ChatColor.ITALIC + "To reset the spawn of a single world, use /delspawn.");
  51.                     return true;
  52.                 }
  53.                 if(args[0].equals("spawns")) {
  54.                     p.sendMessage(ChatColor.BLUE + "--> " + ChatColor.WHITE + "WorldSpawns Help" + ChatColor.BLUE + " <--");
  55.                     p.sendMessage(ChatColor.DARK_GRAY + "NOTE: [] = required, <> = optional.");
  56.                     sendCmd(p, "spawn", "<world>", "Teleport to your current world's spawn, or another world's spawn");
  57.                     sendCmd(p, "setspawn", "", "Set the spawn of your current world.");
  58.                     sendCmd(p, "delspawn", "[world]", "Delete the spawn of your current world, or another world's spawn.");
  59.                     return true;
  60.                 }
  61.                 else if(args[0].equals("reload")) {
  62.                     try {
  63.                         main.reloadConfig();
  64.                     } catch(Exception e) {
  65.                         p.sendMessage(prefix + ChatColor.RED + "Failed to reload config! Report this problem to plugin developer and/or the server administrator(s).");
  66.                         return true;
  67.                     }
  68.                     p.sendMessage(prefix + ChatColor.WHITE + "Reloaded config!");
  69.                     return true;
  70.                 }
  71.                 else if(args[0].equals("check")) {
  72.                     p.sendMessage(prefix + ChatColor.RED + "Please define a world to check the spawn from. Usage: " + ChatColor.GOLD + "/" + label + " check [world]" + ChatColor.RED + ".");
  73.                     return true;
  74.                 }
  75.                 else if(args[0].equals("reset")) {
  76.                     settings.getSpawns().set("spawns" , null);
  77.                     settings.saveSpawns();
  78.  
  79.                     p.sendMessage(prefix + ChatColor.GREEN + "All spawns have been reset.");
  80.                     playSound(p, Sound.ENTITY_FIREWORK_LARGE_BLAST);
  81.                     return true;
  82.                 } else {
  83.                     p.sendMessage(prefix + ChatColor.RED + "Unknown subcommand '" + args[0] + "'. Use " + ChatColor.GOLD + "/" + label + " help" + ChatColor.RED + " to get a list of available commands.");
  84.                 }
  85.             }
  86.             else if(args.length == 2) {
  87.                 if(args[0].equals("help")) {
  88.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Usage: " + ChatColor.GOLD + "/" + label + " help" + ChatColor.RED + ".");
  89.                     return true;
  90.                 }
  91.                 if(args[0].equals("spawns")) {
  92.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Usage: " + ChatColor.GOLD + "/" + label + " spawns" + ChatColor.RED + ".");
  93.                     return true;
  94.                 }
  95.                 else if(args[0].equals("reload")) {
  96.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Usage: " + ChatColor.GOLD + "/" + label + " help" + ChatColor.RED + ".");
  97.                     return true;
  98.                 }
  99.                 else if(args[0].equals("check")) {
  100.                     String worldname = args[1];
  101.                     double x = settings.getSpawns().getInt("spawns." + worldname + ".x");
  102.                     double y = settings.getSpawns().getInt("spawns." + worldname + ".y");
  103.                     double z = settings.getSpawns().getInt("spawns." + worldname + ".z");
  104.                     float yaw = settings.getSpawns().getInt("spawns." + worldname + ".yaw");
  105.                     float pitch = settings.getSpawns().getInt("spawns." + worldname + ".pitch");
  106.                    
  107.                     Location loc = new Location(null, x, y - 1, z, yaw, pitch);
  108.                    
  109.                     p.sendMessage(ChatColor.BLUE + "--> " + ChatColor.WHITE + "WorldSpawns - Spawn of " + ChatColor.GOLD + worldname + ChatColor.BLUE + " <--");
  110.                     if(settings.getSpawns().get("spawns." + worldname) == null) {
  111.                         p.sendMessage(ChatColor.WHITE + "The spawn of this world has not been set yet.");
  112.                     } else {
  113.                         p.sendMessage(ChatColor.GRAY + "X: " + ChatColor.WHITE + x + ".");
  114.                         p.sendMessage(ChatColor.GRAY + "Y: " + ChatColor.WHITE + y + ".");
  115.                         p.sendMessage(ChatColor.GRAY + "Z: " + ChatColor.WHITE + z + ".");
  116.                         p.sendMessage(ChatColor.GRAY + "Yaw: " + ChatColor.WHITE + yaw + ".");
  117.                         p.sendMessage(ChatColor.GRAY + "Pitch: " + ChatColor.WHITE + pitch + ".");
  118.                         if(loc.getBlock().getType().equals(Material.AIR)) {
  119.                             p.sendMessage(ChatColor.GRAY + "In air: " + ChatColor.WHITE + "true.");
  120.                         } else {
  121.                             p.sendMessage(ChatColor.GRAY + "In air: " + ChatColor.WHITE + "false.");
  122.                         }
  123.                     }
  124.                     return true;
  125.                 }
  126.                 else if(args[0].equals("reset")) {
  127.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Usage: " + ChatColor.GOLD + "/" + label + " reset" + ChatColor.RED + ".");
  128.                     return true;
  129.                 } else {
  130.                     p.sendMessage(prefix + ChatColor.RED + "Unknown subcommand '" + args[0] + "'. Use " + ChatColor.GOLD + "/" + label + " help" + ChatColor.RED + " to get a list of available commands.");
  131.                     return true;
  132.                 }
  133.             } else {
  134.                 if(args[0].equals("help")) {
  135.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Usage: " + ChatColor.GOLD + "/" + label + " help" + ChatColor.RED + ".");
  136.                     return true;
  137.                 }
  138.                 if(args[0].equals("spawns")) {
  139.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Usage: " + ChatColor.GOLD + "/" + label + " spawns" + ChatColor.RED + ".");
  140.                     return true;
  141.                 }
  142.                 else if(args[0].equals("reload")) {
  143.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Usage: " + ChatColor.GOLD + "/" + label + " help" + ChatColor.RED + ".");
  144.                     return true;
  145.                 }
  146.                 else if(args[0].equals("check")) {
  147.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Usage: " + ChatColor.GOLD + "/" + label + " check [world]" + ChatColor.RED + ".");
  148.                     return true;
  149.                 }
  150.                 else if(args[0].equals("reset")) {
  151.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Usage: " + ChatColor.GOLD + "/" + label + " reset" + ChatColor.RED + ".");
  152.                     return true;
  153.                 } else {
  154.                     p.sendMessage(prefix + ChatColor.RED + "Too many arguments (" + args.length + "). Use " + ChatColor.GOLD + "/" + label + " help" + ChatColor.RED + " to get a list of available commands.");
  155.                     return true;
  156.                 }
  157.             }
  158.         }
  159.         return false;
  160.     }
  161.  
  162.     private void sendCmd(CommandSender sender, String label, String args, String desc) {
  163.         sender.sendMessage(ChatColor.GRAY + "/" + label + " " + args + ChatColor.WHITE + " - " + desc);
  164.     }
  165.    
  166.     private boolean enableSounds() {
  167.         if(main.getConfig().getBoolean("settings.enablesounds") == true) {
  168.             return true;
  169.         } else {
  170.             return false;
  171.         }
  172.     }
  173.    
  174.     private void playSound(Player player, Sound sound) {
  175.         if(enableSounds()) {
  176.             player.playSound(player.getLocation(), sound, 10, 1);
  177.         } else {
  178.             //Do nothing.
  179.         }
  180.     }
  181.  
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement