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");
}
}
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");
}
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"));
}
}
}
}
}
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);
}
}
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;
}
}
Aggregations