Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Выделение и название будущего региона + проход по списку регионов, проверяет пересечение. Не понимаю че ты мозг ипешь.просто я как понял он берет именно приват, а не выделения привата ! он не считывает точки выделения !
Как подключить этот код к этому ? я слишком глуп или не понимаю что требуется (Вот те полный код.
Код:package Example; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; import com.sk89q.minecraft.util.commands.CommandException; import com.sk89q.worldedit.BlockVector; import com.sk89q.worldedit.bukkit.WorldEditPlugin; import com.sk89q.worldedit.bukkit.selections.CuboidSelection; import com.sk89q.worldedit.bukkit.selections.Polygonal2DSelection; import com.sk89q.worldedit.bukkit.selections.Selection; import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.managers.RegionManager; import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion; import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion; import com.sk89q.worldguard.protection.regions.ProtectedRegion; public class wg { protected static WorldGuardPlugin wg = (WorldGuardPlugin) Bukkit.getPluginManager().getPlugin("WorldGuard"); public static void get(Player player, String id, World world) throws CommandException { LocalPlayer localPlayer = wg.wrapPlayer(player); RegionManager manager = wg.getRegionContainer().get(world); checkRegionDoesNotExist(manager, id, false); ApplicableRegionSet regions = manager.getApplicableRegions(checkRegionFromSelection(player, id)); if (regions.size() > 0) { if (!regions.isOwnerOfAll(localPlayer)) { throw new CommandException("This region overlaps with someone else's region."); } } } protected static Selection checkSelection(Player player) throws CommandException { WorldEditPlugin worldEdit = WorldGuardPlugin.inst().getWorldEdit(); Selection selection = worldEdit.getSelection(player); if (selection == null) { throw new CommandException( "Please select an area first. Use WorldEdit to make a selection! (wiki: http://wiki.sk89q.com/wiki/WorldEdit)."); } return selection; } protected static ProtectedRegion checkRegionFromSelection(Player player, String id) throws CommandException { Selection selection = checkSelection(player); if ((selection instanceof Polygonal2DSelection)) { Polygonal2DSelection polySel = (Polygonal2DSelection) selection; int minY = polySel.getNativeMinimumPoint().getBlockY(); int maxY = polySel.getNativeMaximumPoint().getBlockY(); return new ProtectedPolygonalRegion(id, polySel.getNativePoints(), minY, maxY); } if ((selection instanceof CuboidSelection)) { BlockVector min = selection.getNativeMinimumPoint().toBlockVector(); BlockVector max = selection.getNativeMaximumPoint().toBlockVector(); return new ProtectedCuboidRegion(id, min, max); } throw new CommandException("Sorry, you can only use cuboids and polygons for WorldGuard regions."); } protected static String checkRegionId(String id, boolean allowGlobal) throws CommandException { if (!ProtectedRegion.isValidId(id)) { throw new CommandException("The region name of '" + id + "' contains characters that are not allowed."); } if ((!allowGlobal) && (id.equalsIgnoreCase("__global__"))) { throw new CommandException("Sorry, you can't use __global__ here."); } return id; } protected static void checkRegionDoesNotExist(RegionManager manager, String id, boolean mayRedefine) throws CommandException { if (manager.hasRegion(id)) { throw new CommandException("A region with that name already exists. Please choose another name." + (mayRedefine ? " To change the shape, use /region redefine " + id + "." : "")); } } }
package event.main.KuSaMe;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.ApplicableRegionSet;
import com.sk89q.worldguard.protection.managers.RegionManager;
public class private2 implements Listener
{
private AR plugin;
public private2(AR plugin)
{
this.plugin = plugin;
}
@SuppressWarnings("deprecation")
@EventHandler
public void interact(PlayerInteractEvent e)
{
Action a = e.getAction();
Player p = e.getPlayer();
if (a == Action.RIGHT_CLICK_BLOCK )
{
int x = plugin.getConfig().getInt("p.x");
int c2 = plugin.getConfig().getInt("p2.c");
String n2 = plugin.getConfig().getString("p2.n");
String s2 = plugin.getConfig().getString("p2.s");
String w2 = plugin.getConfig().getString("p2.w");
String e2 = plugin.getConfig().getString("p2.e");
String z2 = plugin.getConfig().getString("p2.z");
WorldGuardPlugin wg = (WorldGuardPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldGuard");
RegionManager rgm = wg.getRegionManager(p.getWorld());
ApplicableRegionSet ars = rgm.getApplicableRegions(p.getLocation());
if(p.getItemInHand().getTypeId() != c2 ) return;
if(e.getClickedBlock().getTypeId() == x)
{
int rnd1 = 1 + (int) (Math.random()*100);
int rnd2 = 1 + (int) (Math.random()*100);
int rnd3 = 1 + (int) (Math.random()*100);
p.playSound(p.getLocation(),
Sound.ENDERDRAGON_DEATH, 1, 2);
p.performCommand("/hpos1");
p.performCommand("/hpos2");
p.performCommand("/expand" + " " + n2);
p.performCommand("/expand" + " " + s2);
p.performCommand("/expand" + " " + w2);
p.performCommand("/expand" + " " + e2);
p.performCommand("/expand vert");
if (ars.getRegions().iterator() == null ) return;
if(ars.getRegions().iterator().equals("__global__")) return;
if( ars.size() == 0)
{
p.sendMessage(ChatColor.GREEN + "Ваш приват не пересекаеться с другими приватами.");
p.performCommand("rg" + " " + "claim" + " " + p.getName()
+ "_" + z2 + "x" + z2 + "_" + rnd1 + rnd2 + rnd3);
}
else
{
p.sendMessage(ChatColor.RED + "Вы не можете заприватить, так как ваш приват пересекаеться с другим приватом.");
}
}
}
e.isCancelled();
}
}
@EventHandler
public void interact(PlayerInteractEvent e) {
Player player = e.getPlayer();
try {
wg.get(player, player.getName()+e.getClickedBlock().getChunk(), player.getWorld());
//Что то делаем.
player.sendMessage("Ок");
} catch (CommandException ex) {
player.sendMessage(ex.getMessage());
}
}
Спасибо большое ) очень благодарен ! все работает как надо )Вот как то так.
Код:@EventHandler public void interact(PlayerInteractEvent e) { Player player = e.getPlayer(); try { wg.get(player, player.getName()+e.getClickedBlock().getChunk(), player.getWorld()); //Что то делаем. player.sendMessage("Ок"); } catch (CommandException ex) { player.sendMessage(ex.getMessage()); } }