Skocz do zawartości
  • 0

Jak zablokować stawianie w danym regionie bloku


DeepesT

Pytanie

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Sprawdzanie czy dana lokalizacja znajduje się w danym regionie:

 


	public static boolean inRegion(Location location, String RegionName) {
		boolean cuboid = false;
		ApplicableRegionSet regions = WorldGuardPlugin.inst().getRegionManager(location.getWorld())
				.getApplicableRegions(location);
		for (ProtectedRegion region : regions) {
			if (region.getId().equalsIgnoreCase(RegionName)) {
				cuboid = true;
			}
		}
		return cuboid;
	}

 

BlockPlaceListener (nie testowałem, ale powinno śmigać):

 

    @EventHandler
    public void onPlace(BlockPlaceEvent event) {
        Player player = event.getPlayer();
        Block block = event.getBlockPlaced();
        Material type = block.getType();
        if(type != Material.ENDER_STONE){
            return;
        }
        ItemStack itemStack = player.getItemInHand();
        if(!itemStack.hasItemMeta()){
            return;
        }
        ItemMeta itemMeta = itemStack.getItemMeta();
        if(!itemMeta.hasDisplayName()){
            return;
        }
        String name = itemMeta.getDisplayName();
        Location location = block.getLocation();
        if(!LocationUtil.inRegion(location, "nazwaregionu")){
            return;
        }
        if(name.equals(ChatUtil.fixColor("&2Test"))){
            event.setCancelled(true);
            player.sendMessage("Nie mozesz tego postawic na tym regionie!");
        }
    }

ChatUtil:

 

    public static String fixColor(String text){
        return ChatColor.translateAlternateColorCodes('&', text);
    }

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
25 minut temu, paweU napisał:

Sprawdzanie czy dana lokalizacja znajduje się w danym regionie:

 


	public static boolean inRegion(Location location, String RegionName) {
		boolean cuboid = false;
		ApplicableRegionSet regions = WorldGuardPlugin.inst().getRegionManager(location.getWorld())
				.getApplicableRegions(location);
		for (ProtectedRegion region : regions) {
			if (region.getId().equalsIgnoreCase(RegionName)) {
				cuboid = true;
			}
		}
		return cuboid;
	}

 

BlockPlaceListener (nie testowałem, ale powinno śmigać):

 


    @EventHandler
    public void onPlace(BlockPlaceEvent event) {
        Player player = event.getPlayer();
        Block block = event.getBlockPlaced();
        Material type = block.getType();
        if(type != Material.ENDER_STONE){
            return;
        }
        ItemStack itemStack = player.getItemInHand();
        if(!itemStack.hasItemMeta()){
            return;
        }
        ItemMeta itemMeta = itemStack.getItemMeta();
        if(!itemMeta.hasDisplayName()){
            return;
        }
        String name = itemMeta.getDisplayName();
        Location location = block.getLocation();
        if(!LocationUtil.inRegion(location, "nazwaregionu")){
            return;
        }
        if(name.equals(ChatUtil.fixColor("&2Test"))){
            event.setCancelled(true);
            player.sendMessage("Nie mozesz tego postawic na tym regionie!");
        }
    }

ChatUtil:

 


    public static String fixColor(String text){
        return ChatColor.translateAlternateColorCodes('&', text);
    }

 

 

wychodzi na to że dawno nie pisałem pluginów bo coś zjeb*** i jak wklejam to do kodu to takie błędy że to szok achach ta przerwa 

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...