Skocz do zawartości
  • 0

Jak zablokować stawianie w danym regionie bloku


DeepesT
 Udostępnij

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.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

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