Search in sources :

Example 91 with Region

use of br.net.fabiozumbi12.RedProtect.Sponge.Region in project RedProtect by FabioZumbi12.

the class RPEntityListener method onInteractEvent.

@Listener(order = Order.FIRST, beforeModifications = true)
public void onInteractEvent(InteractEntityEvent.Secondary e, @First Player p) {
    Entity et = e.getTargetEntity();
    Location<World> l = et.getLocation();
    Region r = RedProtect.get().rm.getTopRegion(l);
    RedProtect.get().logger.debug("entity", "RPEntityListener - InteractEntityEvent.Secondary entity " + et.getType().getName());
    if (r != null && !r.canInteractPassives(p) && (et instanceof Animal || et instanceof Villager || et instanceof Golem || et instanceof Ambient)) {
        if (RedProtect.get().getPVHelper().checkHorseOwner(et, p)) {
            return;
        }
        e.setCancelled(true);
        RPLang.sendMessage(p, "entitylistener.region.cantinteract");
    }
}
Also used : Golem(org.spongepowered.api.entity.living.golem.Golem) Entity(org.spongepowered.api.entity.Entity) Ambient(org.spongepowered.api.entity.living.Ambient) Animal(org.spongepowered.api.entity.living.animal.Animal) Villager(org.spongepowered.api.entity.living.Villager) Region(br.net.fabiozumbi12.RedProtect.Sponge.Region) World(org.spongepowered.api.world.World) Listener(org.spongepowered.api.event.Listener)

Example 92 with Region

use of br.net.fabiozumbi12.RedProtect.Sponge.Region in project RedProtect by FabioZumbi12.

the class RPCommands method handleWelcome.

private static void handleWelcome(Player p, String wMessage) {
    Region r = RedProtect.get().rm.getTopRegion(p.getLocation());
    if (RedProtect.get().ph.hasRegionPermAdmin(p, "welcome", r)) {
        if (r != null) {
            switch(wMessage) {
                case "":
                    r.setWelcome("");
                    RPLang.sendMessage(p, "cmdmanager.region.welcomeoff");
                    break;
                case "hide ":
                    r.setWelcome(wMessage);
                    RPLang.sendMessage(p, "cmdmanager.region.welcomehide");
                    break;
                default:
                    r.setWelcome(wMessage);
                    RPLang.sendMessage(p, RPLang.get("cmdmanager.region.welcomeset") + " " + ChatColor.translateAlternateColorCodes('&', wMessage));
                    break;
            }
            RedProtect.get().logger.addLog("(World " + r.getWorld() + ") Player " + p.getName() + " SET WELCOME of region " + r.getName() + " to " + wMessage);
            return;
        } else {
            RPLang.sendMessage(p, "cmdmanager.region.todo.that");
            return;
        }
    }
    RPLang.sendMessage(p, "no.permission");
}
Also used : Region(br.net.fabiozumbi12.RedProtect.Bukkit.Region)

Example 93 with Region

use of br.net.fabiozumbi12.RedProtect.Sponge.Region in project RedProtect by FabioZumbi12.

the class RPCommands method getRegionforList.

private static void getRegionforList(CommandSender sender, String uuid, int Page) {
    Set<Region> regions = RedProtect.get().rm.getRegions(RPUtil.PlayerToUUID(uuid));
    String pname = RPUtil.UUIDtoPlayer(uuid);
    int length = regions.size();
    if (pname == null || length == 0) {
        RPLang.sendMessage(sender, "cmdmanager.player.noregions");
    } else {
        sender.sendMessage(RPLang.get("general.color") + "-------------------------------------------------");
        RPLang.sendMessage(sender, RPLang.get("cmdmanager.region.created.list") + " " + pname);
        sender.sendMessage("-----");
        if (RPConfig.getBool("region-settings.region-list.simple-listing")) {
            for (World w : Bukkit.getWorlds()) {
                String colorChar = ChatColor.translateAlternateColorCodes('&', RPConfig.getString("region-settings.world-colors." + w.getName(), "&a"));
                Set<Region> wregions = RedProtect.get().rm.getRegions(RPUtil.PlayerToUUID(uuid), w);
                if (wregions.size() > 0) {
                    Iterator<Region> it = wregions.iterator();
                    if (RPConfig.getBool("region-settings.region-list.hover-and-click-teleport") && RedProtect.get().ph.hasRegionPermAdmin(sender, "teleport", null) && new FancyMessage() != null) {
                        FancyMessage fancy = new FancyMessage();
                        boolean first = true;
                        while (it.hasNext()) {
                            Region r = it.next();
                            String area = RPConfig.getBool("region-settings.region-list.show-area") ? "(" + RPUtil.simuleTotalRegionSize(RPUtil.PlayerToUUID(uuid), r) + ")" : "";
                            String rname = RPLang.get("general.color") + ", " + ChatColor.GRAY + r.getName() + area;
                            if (first) {
                                rname = rname.substring(3);
                                first = false;
                            }
                            if (!it.hasNext()) {
                                rname = rname + RPLang.get("general.color") + ".";
                            }
                            fancy.text(rname).color(ChatColor.DARK_GRAY).tooltip(RPLang.get("cmdmanager.list.hover").replace("{region}", r.getName())).command("/rp " + getCmd("teleport") + " " + r.getName() + " " + r.getWorld()).then(" ");
                        }
                        sender.sendMessage(RPLang.get("general.color") + RPLang.get("region.world").replace(":", "") + " " + colorChar + w.getName() + "[" + wregions.size() + "]" + ChatColor.RESET + ": ");
                        fancy.send(sender);
                        sender.sendMessage("-----");
                    } else {
                        String worldregions = "";
                        while (it.hasNext()) {
                            Region r = it.next();
                            String area = RPConfig.getBool("region-settings.region-list.show-area") ? "(" + RPUtil.simuleTotalRegionSize(RPUtil.PlayerToUUID(uuid), r) + ")" : "";
                            worldregions = worldregions + RPLang.get("general.color") + ", " + ChatColor.GRAY + r.getName() + area;
                        }
                        sender.sendMessage(RPLang.get("general.color") + RPLang.get("region.world").replace(":", "") + " " + colorChar + w.getName() + "[" + wregions.size() + "]" + ChatColor.RESET + ": ");
                        sender.sendMessage(worldregions.substring(3) + RPLang.get("general.color") + ".");
                        sender.sendMessage("-----");
                    }
                }
            }
        } else {
            Iterator<Region> i = regions.iterator();
            if (Page == 0) {
                Page = 1;
            }
            int max = (10 * Page);
            int min = max - 10;
            int count = 0;
            int last = 0;
            while (i.hasNext()) {
                String info = i.next().info();
                if (count >= min && count <= max) {
                    sender.sendMessage(RPLang.get("general.color") + "-------------------------------------------------");
                    sender.sendMessage(RPLang.get("general.color") + "[" + (count + 1) + "] " + info);
                    last = count;
                }
                count++;
            }
            if (max > count) {
                min = 0;
            }
            sender.sendMessage(RPLang.get("general.color") + "------------- " + (min + 1) + "-" + (last + 1) + "/" + count + " --------------");
            if (count > max) {
                sender.sendMessage(RPLang.get("cmdmanager.region.listpage.more").replace("{player}", pname + " " + (Page + 1)));
            } else {
                if (Page != 1) {
                    sender.sendMessage(RPLang.get("cmdmanager.region.listpage.nomore"));
                }
            }
        }
    }
}
Also used : Region(br.net.fabiozumbi12.RedProtect.Bukkit.Region) World(org.bukkit.World) FancyMessage(br.net.fabiozumbi12.RedProtect.Bukkit.Fanciful.FancyMessage)

Example 94 with Region

use of br.net.fabiozumbi12.RedProtect.Sponge.Region in project RedProtect by FabioZumbi12.

the class RPCommands method handleInfo.

private static void handleInfo(Player p, String region, String world) {
    Region r = RedProtect.get().rm.getRegion(region, p.getWorld());
    if (!world.equals("")) {
        if (Bukkit.getWorld(world) != null) {
            r = RedProtect.get().rm.getRegion(region, Bukkit.getWorld(world));
        } else {
            RPLang.sendMessage(p, "cmdmanager.region.invalidworld");
            return;
        }
    }
    if (RedProtect.get().ph.hasRegionPermAdmin(p, "info", r) || r.isForSale()) {
        if (r == null) {
            sendNotInRegionMessage(p);
            return;
        }
        p.sendMessage(RPLang.get("general.color") + "--------------- [" + ChatColor.GOLD + r.getName() + RPLang.get("general.color") + "] ---------------");
        p.sendMessage(r.info());
        p.sendMessage(RPLang.get("general.color") + "----------------------------------");
    } else {
        sendNoPermissionMessage(p);
    }
}
Also used : Region(br.net.fabiozumbi12.RedProtect.Bukkit.Region)

Example 95 with Region

use of br.net.fabiozumbi12.RedProtect.Sponge.Region in project RedProtect by FabioZumbi12.

the class RPCommands method handleMyChunk.

private static boolean handleMyChunk() {
    if (!RedProtect.get().MyChunk) {
        return false;
    }
    Set<LiteChunk> allchunks = new HashSet<>();
    for (World w : RedProtect.get().serv.getWorlds()) {
        Set<LiteChunk> chunks = MyChunkChunk.getChunks(w);
        allchunks.addAll(chunks);
    }
    if (allchunks.size() != 0) {
        int i = 0;
        for (LiteChunk c : allchunks) {
            List<String> leaders = new ArrayList<>();
            String admin = RPUtil.PlayerToUUID(c.getOwner());
            leaders.add(admin.toString());
            World w = RedProtect.get().serv.getWorld(c.getWorldName());
            Chunk chunk = w.getChunkAt(c.getX(), c.getZ());
            int x = chunk.getBlock(7, 50, 7).getX();
            int z = chunk.getBlock(7, 50, 7).getZ();
            String regionName = "";
            int in = 0;
            while (true) {
                int is = String.valueOf(in).length();
                if (RPUtil.UUIDtoPlayer(admin).length() > 13) {
                    regionName = RPUtil.UUIDtoPlayer(admin).substring(0, 14 - is) + "_" + in;
                } else {
                    regionName = RPUtil.UUIDtoPlayer(admin) + "_" + in;
                }
                if (RedProtect.get().rm.getRegion(regionName, w) == null) {
                    break;
                }
                ++in;
            }
            Region r = new Region(regionName, new ArrayList<>(), new ArrayList<>(), leaders, new int[] { x + 8, x + 8, x - 7, x - 7 }, new int[] { z + 8, z + 8, z - 7, z - 7 }, 0, w.getMaxHeight(), 0, c.getWorldName(), RPUtil.DateNow(), RPConfig.getDefFlagsValues(), "", 0, null, true);
            MyChunkChunk.unclaim(chunk);
            RedProtect.get().rm.add(r, w);
            RedProtect.get().logger.warning("Region converted and named to " + r.getName());
            i++;
        }
        RedProtect.get().logger.sucess(i + " MyChunk regions converted!");
        return true;
    } else {
        return false;
    }
}
Also used : LiteChunk(me.ellbristow.mychunk.LiteChunk) Region(br.net.fabiozumbi12.RedProtect.Bukkit.Region) World(org.bukkit.World) Chunk(org.bukkit.Chunk) LiteChunk(me.ellbristow.mychunk.LiteChunk) MyChunkChunk(me.ellbristow.mychunk.MyChunkChunk)

Aggregations

Region (br.net.fabiozumbi12.RedProtect.Bukkit.Region)113 EventHandler (org.bukkit.event.EventHandler)92 Player (org.bukkit.entity.Player)69 Region (br.net.fabiozumbi12.RedProtect.Sponge.Region)47 Listener (org.spongepowered.api.event.Listener)46 Location (org.bukkit.Location)43 World (org.spongepowered.api.world.World)30 Block (org.bukkit.block.Block)26 MyPetPlayer (de.Keyle.MyPet.api.player.MyPetPlayer)20 PvPlayer (me.NoChance.PvPManager.PvPlayer)20 Entity (org.bukkit.entity.Entity)20 BlockSnapshot (org.spongepowered.api.block.BlockSnapshot)19 Entity (org.spongepowered.api.entity.Entity)19 LivingEntity (org.bukkit.entity.LivingEntity)16 Player (org.spongepowered.api.entity.living.player.Player)16 World (org.bukkit.World)10 Monster (org.bukkit.entity.Monster)10 Material (org.bukkit.Material)9 ClanPlayer (net.sacredlabyrinth.phaed.simpleclans.ClanPlayer)8 OfflinePlayer (org.bukkit.OfflinePlayer)8