Skocz do zawartości
  • 0

Jak zablokować stawianie w danym regionie bloku


Pytanie

Witam nie wiem jak napisać plugin który by blokował stawianie end_stone o danej nazwie np "&2Test" w regionie spawn po prostu po postawieniu by anulował się event Dziękuję za Pomoc 

Wiem że potrzebuje API wordlGuarda do tego.

Odnośnik do odpowiedzi
Udostępnij na innych stronach

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 odpowiedzi
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 odpowiedzi
Udostępnij na innych stronach
  • 0
Teraz, DeepesT napisał:

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 

Musisz dodać do libek WorldEdita i WorldGuarda

Odnośnik do odpowiedzi
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ę...