Qmaks

Untitled

Feb 24th, 2016
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.35 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package qmaks.wgregions;
  7.  
  8. import com.earth2me.essentials.Essentials;
  9. import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
  10. import com.sk89q.worldguard.protection.ApplicableRegionSet;
  11. import com.sk89q.worldguard.protection.regions.ProtectedRegion;
  12. import java.io.File;
  13. import java.util.Iterator;
  14. import java.util.List;
  15. import org.bukkit.Bukkit;
  16. import org.bukkit.GameMode;
  17. import org.bukkit.Location;
  18. import org.bukkit.block.Block;
  19. import org.bukkit.command.Command;
  20. import org.bukkit.command.CommandSender;
  21. import org.bukkit.entity.Player;
  22. import org.bukkit.event.EventHandler;
  23. import org.bukkit.event.Listener;
  24. import org.bukkit.plugin.Plugin;
  25. import org.bukkit.plugin.java.JavaPlugin;
  26.  
  27.  
  28. /**
  29.  *
  30.  * @author Qmaks
  31.  */
  32. public class Main extends JavaPlugin implements Listener {
  33.    
  34.     private static List<String> regions;
  35.     private static WorldGuardPlugin wg;
  36.     private static Essentials ess;
  37.     private static String msg;
  38.     private static int sendmsg = 0;
  39.    
  40.     @Override
  41.     public void onEnable() {
  42.         if (this.getWorldGuard() == null || this.getEssentials() == null) {
  43.             this.setEnabled(false);
  44.             System.out.println("§f[§cWGR§f] §eПАСТАФЬ ТРЕБУЕМЫЕ ПЛУГИНЫ!");
  45.         } else {
  46.             wg = getWorldGuard();
  47.             ess = getEssentials();
  48.             msg = getConfig().getString("msg");
  49.             regions = getConfig().getStringList("regions");
  50.             if(!(new File(getDataFolder().toString()).exists())) {
  51.                 saveDefaultConfig();
  52.             }
  53.         }
  54.         System.out.println("#################################################");
  55.         System.out.println("################## [WGRegions] ##################");
  56.         System.out.println("################ [Made by Qmaks] ################");
  57.         System.out.println("############### [vk.com/theqmaks] ###############");
  58.         System.out.println("#################################################");
  59.         this.startChecker();
  60.     }
  61.    
  62.     @EventHandler    
  63.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  64.             Player pl = (Player)sender;
  65.             if (cmd.getName().equalsIgnoreCase("wgr")) {
  66.                 if(args.length == 0) {
  67.                     sendHelp(pl);
  68.                     return true;
  69.                 } else if((args.length != 0) && (args[0].equalsIgnoreCase("add"))) {
  70.                     if (args.length != 2) {
  71.                       sendHelp(pl);
  72.                       return true;
  73.                     } else if(regions.contains(args[1])) {
  74.                       pl.sendMessage("§f[§cWGR§f] §cДанный регион уже добавлен!");
  75.                       return true;
  76.                     }
  77.                     regions.add(args[1]);
  78.                     msg = getConfig().getString("msg");
  79.                     getConfig().set("regions", regions);
  80.                     saveConfig();
  81.                     pl.sendMessage("§f[§cWGR§f] §eДобавлен регион §a" + args[1]);
  82.                     return true;
  83.                 } else if((args.length != 0) && (args[0].equalsIgnoreCase("del"))) {
  84.                     if (args.length != 2) {
  85.                       sendHelp(pl);
  86.                       return true;
  87.                     } else if(!regions.contains(args[1])) {
  88.                       pl.sendMessage("§f[§cWGR§f] §cДанного региона нет в списке!");
  89.                       return true;
  90.                     }
  91.                     regions.remove(args[1]);
  92.                     msg = getConfig().getString("msg");
  93.                     getConfig().set("regions", regions);
  94.                     saveConfig();
  95.                     pl.sendMessage("§f[§cWGR§f] §eУдалён регион §a" + args[1]);
  96.                     return true;
  97.                 } else if((args.length != 0) && (args[0].equalsIgnoreCase("list"))) {
  98.                     pl.sendMessage("§f[§cWGR§f] §eСписок регионов: §a" + regions.toString().substring(1, regions.toString().length() - 1));
  99.                     return true;
  100.                 } else if((args.length != 0) && (args[0].equalsIgnoreCase("reload"))) {
  101.                     reloadConfig();
  102.                     saveConfig();
  103.                     msg = getConfig().getString("msg");
  104.                     regions = getConfig().getStringList("regions");
  105.                     pl.sendMessage("§f[§cWGR§f] §aКонфиг перезагружен.");
  106.                 }
  107.             }
  108.         return false;
  109.     }
  110.    
  111.     private static void sendHelp(Player pl) {
  112.         pl.sendMessage("§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e= §6WGR Help §e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=");
  113.         pl.sendMessage("§e/wgr list - Список регионов.");
  114.         pl.sendMessage("§e/wgr reload - Перезагрузить конфиг.");
  115.         pl.sendMessage("§e/wgr add <название региона> - Добавить регион в список.");
  116.         pl.sendMessage("§e/wgr del <название региона> - Удалить регион из списка.");
  117.         pl.sendMessage("§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=§f-§e=");
  118.     }
  119.    
  120.     private void startChecker() {
  121.         Bukkit.getScheduler().runTaskTimer((Plugin)this, (Runnable)new Runnable() {
  122.             @Override
  123.             public void run() {
  124.                 for(Player player : getServer().getOnlinePlayers()) {
  125.                     for(String region : regions) {
  126.                         if(isWithinRegion(player, region)) {
  127.                             if(getConfig().getBoolean("gm") && player.getGameMode() == GameMode.CREATIVE) {
  128.                                player.setGameMode(GameMode.SURVIVAL);
  129.                                sendmsg++;
  130.                             } else if(getConfig().getBoolean("god") && ess.getUser(player).isGodModeEnabled()) {
  131.                                ess.getUser(player).setGodModeEnabled(false);
  132.                                sendmsg++;
  133.                             } else if(getConfig().getBoolean("fly") && (player.isFlying() || player.getAllowFlight())) {
  134.                                player.setAllowFlight(false);
  135.                                player.setFlying(false);
  136.                                sendmsg++;
  137.                             }
  138.                             if(sendmsg > 0) {
  139.                                 player.sendMessage(msg.replace("&", "§"));
  140.                                 sendmsg = 0;
  141.                             }
  142.                         }
  143.                     }
  144.                 }
  145.             }
  146.         }, 0L, 20L);
  147.     }
  148.    
  149.     public boolean isWithinRegion(Player player, String region) {
  150.         return isWithinRegion(player.getLocation(), region);
  151.     }
  152.     public boolean isWithinRegion(Block block, String region) {
  153.         return isWithinRegion(block.getLocation(), region);
  154.     }
  155.    
  156.     public boolean isWithinRegion(Location l, String region)
  157.     {
  158.         ApplicableRegionSet regions = wg.getRegionManager(l.getWorld()).getApplicableRegions(l);
  159.  
  160.         if (regions == null) {
  161.           return false;
  162.         }
  163.  
  164.         Iterator iter = regions.iterator();
  165.  
  166.         ProtectedRegion reg = null;
  167.  
  168.         if (iter.hasNext())
  169.         {
  170.           reg = (ProtectedRegion)iter.next();
  171.           return reg.getId().equals(region);
  172.         }
  173.  
  174.         return false;
  175.     }
  176.    
  177.     private WorldGuardPlugin getWorldGuard() {
  178.         Plugin plugin = this.getServer().getPluginManager().getPlugin("WorldGuard");
  179.         if (plugin == null || !(plugin instanceof WorldGuardPlugin)) {
  180.             return null;
  181.         }
  182.         return (WorldGuardPlugin)plugin;
  183.     }
  184.    
  185.     public Essentials getEssentials() {
  186.         Plugin plugin = getServer().getPluginManager().getPlugin("Essentials");
  187.         if ((plugin == null) || (!(plugin instanceof Essentials))) {
  188.             return null;
  189.         }
  190.         return (Essentials)plugin;
  191.     }
  192. }
Advertisement
Add Comment
Please, Sign In to add comment