Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package qmaks.wgregions;
- import com.earth2me.essentials.Essentials;
- import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
- import com.sk89q.worldguard.protection.ApplicableRegionSet;
- import com.sk89q.worldguard.protection.regions.ProtectedRegion;
- import java.io.File;
- import java.util.Iterator;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.GameMode;
- import org.bukkit.Location;
- import org.bukkit.block.Block;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.plugin.Plugin;
- import org.bukkit.plugin.java.JavaPlugin;
- /**
- *
- * @author Qmaks
- */
- public class Main extends JavaPlugin implements Listener {
- private static List<String> regions;
- private static WorldGuardPlugin wg;
- private static Essentials ess;
- private static String msg;
- private static int sendmsg = 0;
- @Override
- public void onEnable() {
- if (this.getWorldGuard() == null || this.getEssentials() == null) {
- this.setEnabled(false);
- System.out.println("§f[§cWGR§f] §eПАСТАФЬ ТРЕБУЕМЫЕ ПЛУГИНЫ!");
- } else {
- wg = getWorldGuard();
- ess = getEssentials();
- msg = getConfig().getString("msg");
- regions = getConfig().getStringList("regions");
- if(!(new File(getDataFolder().toString()).exists())) {
- saveDefaultConfig();
- }
- }
- System.out.println("#################################################");
- System.out.println("################## [WGRegions] ##################");
- System.out.println("################ [Made by Qmaks] ################");
- System.out.println("############### [vk.com/theqmaks] ###############");
- System.out.println("#################################################");
- this.startChecker();
- }
- @EventHandler
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
- Player pl = (Player)sender;
- if (cmd.getName().equalsIgnoreCase("wgr")) {
- if(args.length == 0) {
- sendHelp(pl);
- return true;
- } else if((args.length != 0) && (args[0].equalsIgnoreCase("add"))) {
- if (args.length != 2) {
- sendHelp(pl);
- return true;
- } else if(regions.contains(args[1])) {
- pl.sendMessage("§f[§cWGR§f] §cДанный регион уже добавлен!");
- return true;
- }
- regions.add(args[1]);
- msg = getConfig().getString("msg");
- getConfig().set("regions", regions);
- saveConfig();
- pl.sendMessage("§f[§cWGR§f] §eДобавлен регион §a" + args[1]);
- return true;
- } else if((args.length != 0) && (args[0].equalsIgnoreCase("del"))) {
- if (args.length != 2) {
- sendHelp(pl);
- return true;
- } else if(!regions.contains(args[1])) {
- pl.sendMessage("§f[§cWGR§f] §cДанного региона нет в списке!");
- return true;
- }
- regions.remove(args[1]);
- msg = getConfig().getString("msg");
- getConfig().set("regions", regions);
- saveConfig();
- pl.sendMessage("§f[§cWGR§f] §eУдалён регион §a" + args[1]);
- return true;
- } else if((args.length != 0) && (args[0].equalsIgnoreCase("list"))) {
- pl.sendMessage("§f[§cWGR§f] §eСписок регионов: §a" + regions.toString().substring(1, regions.toString().length() - 1));
- return true;
- } else if((args.length != 0) && (args[0].equalsIgnoreCase("reload"))) {
- reloadConfig();
- saveConfig();
- msg = getConfig().getString("msg");
- regions = getConfig().getStringList("regions");
- pl.sendMessage("§f[§cWGR§f] §aКонфиг перезагружен.");
- }
- }
- return false;
- }
- private static void sendHelp(Player pl) {
- 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=");
- pl.sendMessage("§e/wgr list - Список регионов.");
- pl.sendMessage("§e/wgr reload - Перезагрузить конфиг.");
- pl.sendMessage("§e/wgr add <название региона> - Добавить регион в список.");
- pl.sendMessage("§e/wgr del <название региона> - Удалить регион из списка.");
- 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=");
- }
- private void startChecker() {
- Bukkit.getScheduler().runTaskTimer((Plugin)this, (Runnable)new Runnable() {
- @Override
- public void run() {
- for(Player player : getServer().getOnlinePlayers()) {
- for(String region : regions) {
- if(isWithinRegion(player, region)) {
- if(getConfig().getBoolean("gm") && player.getGameMode() == GameMode.CREATIVE) {
- player.setGameMode(GameMode.SURVIVAL);
- sendmsg++;
- } else if(getConfig().getBoolean("god") && ess.getUser(player).isGodModeEnabled()) {
- ess.getUser(player).setGodModeEnabled(false);
- sendmsg++;
- } else if(getConfig().getBoolean("fly") && (player.isFlying() || player.getAllowFlight())) {
- player.setAllowFlight(false);
- player.setFlying(false);
- sendmsg++;
- }
- if(sendmsg > 0) {
- player.sendMessage(msg.replace("&", "§"));
- sendmsg = 0;
- }
- }
- }
- }
- }
- }, 0L, 20L);
- }
- public boolean isWithinRegion(Player player, String region) {
- return isWithinRegion(player.getLocation(), region);
- }
- public boolean isWithinRegion(Block block, String region) {
- return isWithinRegion(block.getLocation(), region);
- }
- public boolean isWithinRegion(Location l, String region)
- {
- ApplicableRegionSet regions = wg.getRegionManager(l.getWorld()).getApplicableRegions(l);
- if (regions == null) {
- return false;
- }
- Iterator iter = regions.iterator();
- ProtectedRegion reg = null;
- if (iter.hasNext())
- {
- reg = (ProtectedRegion)iter.next();
- return reg.getId().equals(region);
- }
- return false;
- }
- private WorldGuardPlugin getWorldGuard() {
- Plugin plugin = this.getServer().getPluginManager().getPlugin("WorldGuard");
- if (plugin == null || !(plugin instanceof WorldGuardPlugin)) {
- return null;
- }
- return (WorldGuardPlugin)plugin;
- }
- public Essentials getEssentials() {
- Plugin plugin = getServer().getPluginManager().getPlugin("Essentials");
- if ((plugin == null) || (!(plugin instanceof Essentials))) {
- return null;
- }
- return (Essentials)plugin;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment