Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.nedcraft.dpasi314.RegionModule;
- import java.util.Iterator;
- import java.util.Map;
- import com.nedcraft.dpasi314.RegionModule.Database.Database;
- import com.sk89q.minecraft.util.commands.CommandException;
- import com.sk89q.worldedit.BlockVector;
- import com.sk89q.worldedit.bukkit.WorldEditPlugin;
- import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
- import com.sk89q.worldguard.domains.DefaultDomain;
- import com.sk89q.worldguard.protection.managers.RegionManager;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.World;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.plugin.Plugin;
- public class Protect implements Listener{
- RegionModule plugin;
- WorldGuardPlugin wg;
- WorldEditPlugin we;
- Database db;
- public Protect(RegionModule instance){
- plugin = instance;
- db = new Database(instance);
- db.loadDB("protections.db");
- hookWorldEdit();
- instance.getServer().getScheduler().scheduleAsyncRepeatingTask(instance, new Runnable() {
- public void run() {
- for (Player p: plugin.getServer().getOnlinePlayers()){
- if (p.hasPermission("regionmoduler.moderator")){
- alertMod(p);
- db.saveDB("protections.db");
- }
- }
- }
- }, 100L, 10000L);
- }
- public void saveProts(){
- db.saveDB("protections.db");
- }
- public void alertMod(Player p){
- p.sendMessage(ChatColor.AQUA+"There are "+ChatColor.RED+db.getLength()+ChatColor.AQUA+" awaiting protections.");
- }
- @SuppressWarnings("rawtypes")
- public void listProts(Player p){
- p.sendMessage(ChatColor.AQUA + "Temporary Awating Protections ("+ChatColor.RED+db.getLength()+ChatColor.AQUA + "):");
- Iterator it = db.getDatabase().entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry pairs = (Map.Entry)it.next();
- String s = "";
- if (it.hasNext()){
- s = "";
- p.sendMessage(ChatColor.RED + "Protection: "+ChatColor.AQUA+pairs.getKey().toString()+s);
- }
- }
- }
- public void teleportProt(Player p, String prot){
- RegionManager rgm = wg.getRegionManager(p.getWorld());
- BlockVector vec = rgm.getRegion(prot).getMaximumPoint();
- Location loc = new Location(p.getWorld(), vec.getX(), p.getWorld().getHighestBlockYAt(new Location(p.getWorld(), vec.getX(), vec.getY(), vec.getZ()))+3, vec.getZ());
- p.teleport(loc);
- }
- public Location blockVectorToLocation(World w, BlockVector vec){
- double x = vec.getX();
- double y = vec.getY();
- double z = vec.getZ();
- return new Location(w, x, y, z);
- }
- public void addProtection(String name, String plyname){
- db.set(name, null);
- for (Player p: plugin.getServer().getOnlinePlayers()){
- if (p.hasPermission("regionmodule.moderator")){
- p.sendMessage(ChatColor.AQUA +plyname+ ChatColor.GOLD +": Has just made the protection "+name);
- }
- }
- }
- public void removeProtection(String name){
- db.deleteKey(name);
- //db.saveDB("protections.db");
- }
- @SuppressWarnings("static-access")
- public void removeProtectionWhole(String name, World w){
- try{
- removeProtection(name);
- DefaultDomain owners = wg.getRegionManager(w).getRegion(name).getOwners();
- System.out.println(owners.getPlayers());
- Player ply = (Player) plugin.getServer().getPlayer((String) owners.getPlayers().toArray()[0]);
- ply.sendMessage(ChatColor.AQUA + "Your protection: "+ChatColor.GOLD+name+ChatColor.AQUA+" has been denied");
- BlockVector pos1 = wg.getRegionManager(w).getRegion(name).getMaximumPoint();
- BlockVector pos2 = wg.getRegionManager(w).getRegion(name).getMinimumPoint();
- double cost = ((Math.abs(((int) pos1.getX() - (int) pos2.getX())) * Math.abs(((int) pos1.getZ() - (int) pos2.getZ()))) * .5);
- plugin.vault.economy.depositPlayer(ply.getName(), cost);
- ply.sendMessage(ChatColor.AQUA + "You have been re-embursed: "+ChatColor.GREEN + cost + ChatColor.AQUA + " for your denied protection.");
- wg.getRegionManager(w).removeRegion(name);
- }
- catch (Exception ex){
- DefaultDomain owners = wg.getRegionManager(w).getRegion(name).getOwners();
- Player ply = (Player) plugin.getServer().getPlayer((String) owners.getPlayers().toArray()[0]);
- ply.sendMessage(ChatColor.RED+"An error has occured, please remove this protection manually.");
- }
- }
- public void hookWorldEdit() {
- Plugin p = plugin.getServer().getPluginManager().getPlugin("WorldGuard");
- // WorldGuard may not be loaded
- if (p == null || !(p instanceof WorldGuardPlugin)) {
- return;
- }
- wg = (WorldGuardPlugin) p;
- try {
- we = wg.getWorldEdit();
- } catch (CommandException e) {
- e.printStackTrace();
- }
- }
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent event){
- for(Player p: plugin.getServer().getOnlinePlayers()){
- if (event.getPlayer().hasPermission("regionmodule.moderator"));
- alertMod(p);
- }
- }
- }
Add Comment
Please, Sign In to add comment