Skocz do zawartości
  • 0

Cięzkie i niezrozumiałe początki


Pytanie

Chciałbym, by zaraz po postawieniu bloku (kowadła) wykonywała się komenda z konsoli, np ban
aktualnie po prostu canceluje i zamienia blok na powietrze, co i gdzie powinienem dopisać?
oraz, jeśli chce dodać więcej bloków a nie tylko kowadła, jak mam zrobić odwołanie do tej sekcji, by nie kopiować wszystkiego i wklejać znow?

 

public class BuchSecurityKowadla implements Listener {
    @EventHandler
    public void kowadlo(BlockPlaceEvent event) {
        Material type= event.getBlock().getType();
        if (type == Material.ANVIL) {
            Player player = event.getPlayer();
            // tutaj odwołanie
            event.setCancelled(true);
            player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&4Wykryto Niedozwolony blok!") );
            event.getPlayer().getInventory().setItemInMainHand(new ItemStack(Material.AIR,1));
            event.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.AIR, 1));
            event.getPlayer().updateInventory();

 

Notro

Wstawiam kod

Notatka dodana przez Notro

Odnośnik do komentarza
https://skript.pl/temat/52110-ci%C4%99zkie-i-niezrozumia%C5%82e-pocz%C4%85tki/
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
7 godzin temu, Buszy napisał:

wykonywała się komenda z konsoli, np ban

nie wiem, ale wpisujesz w google swój problem i już wiesz - https://www.spigotmc.org/threads/dispatchcommand.165106/#post-1752004

7 godzin temu, Buszy napisał:

jeśli chce dodać więcej bloków a nie tylko kowadła

W warunku (if) dodaj 'or', podstawy każdego języka programowania - https://www.delftstack.com/howto/java/or-statement-in-java/

 

Dodatkowo na koniec, jesteś na forum Skript, a nie Java :)

 

edit:

5 godzin temu, opkarol napisał:

Jednak ten dział jest po coś stworzony 👀

@opkarola nie zauważyłeś przypadkiem, że moderator przeniósł ten temat?

Edytowane przez CoFFeIN04
Odnośnik do komentarza
https://skript.pl/temat/52110-ci%C4%99zkie-i-niezrozumia%C5%82e-pocz%C4%85tki/#findComment-318931
Udostępnij na innych stronach

  • 0
W dniu 27.02.2022 o 15:38, CoFFeIN04 napisał:

nie wiem, ale wpisujesz w google swój problem i już wiesz - https://www.spigotmc.org/threads/dispatchcommand.165106/#post-1752004

W warunku (if) dodaj 'or', podstawy każdego języka programowania - https://www.delftstack.com/howto/java/or-statement-in-java/

 

Dodatkowo na koniec, jesteś na forum Skript, a nie Java :)

Jednak ten dział jest po coś stworzony 👀

    /**
     * Tutaj wsadzasz wszystkie materiały bez potrzeby dodawania nowych poleceń warunkowych
     */
    private final List<Material> materialList = new LinkedList<>(Arrays.asList(Material.TNT, Material.ANVIL));
    /**
     * Wiadomość, która miałaby się generować za każdym czasem (i tłumaczyć) można łatwo zastąpić jedną zmienną
     */
    private final String foundInvalidBlockMessage = ChatColor.translateAlternateColorCodes('&',"&4Wykryto Niedozwolony blok!");
    private final String commandToExecute = "";

    @EventHandler
    public void blockPlace(@NotNull BlockPlaceEvent event) {
        Material type = event.getBlock().getType();
        if (!materialList.contains(type)) {
            return;
        }

        Player player = event.getPlayer();
        Inventory inventory = player.getInventory();

        event.setCancelled(true);
        player.sendMessage(foundInvalidBlockMessage);
        /**
         * Zamienienie tylko dłoni może być błędne jeśli gracz ma dobry item w drugiej / głównej ręce
         * Zastosowanie spigotowej metody jest znacznie lepsze
         */
        inventory.remove(type);
        player.updateInventory();
        Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), commandToExecute);
    }

@CoFFeIN04czy wyglądam jakby mi zależało?

Edytowane przez opkarol
Odnośnik do komentarza
https://skript.pl/temat/52110-ci%C4%99zkie-i-niezrozumia%C5%82e-pocz%C4%85tki/#findComment-318937
Udostępnij na innych stronach

  • 0
W dniu 27.02.2022 o 17:10, opkarol napisał:

Jednak ten dział jest po coś stworzony 👀

    /**
     * Tutaj wsadzasz wszystkie materiały bez potrzeby dodawania nowych poleceń warunkowych
     */
    private final List<Material> materialList = new LinkedList<>(Arrays.asList(Material.TNT, Material.ANVIL));
    /**
     * Wiadomość, która miałaby się generować za każdym czasem (i tłumaczyć) można łatwo zastąpić jedną zmienną
     */
    private final String foundInvalidBlockMessage = ChatColor.translateAlternateColorCodes('&',"&4Wykryto Niedozwolony blok!");
    private final String commandToExecute = "";

    @EventHandler
    public void blockPlace(@NotNull BlockPlaceEvent event) {
        Material type = event.getBlock().getType();
        if (!materialList.contains(type)) {
            return;
        }

        Player player = event.getPlayer();
        Inventory inventory = player.getInventory();

        event.setCancelled(true);
        player.sendMessage(foundInvalidBlockMessage);
        /**
         * Zamienienie tylko dłoni może być błędne jeśli gracz ma dobry item w drugiej / głównej ręce
         * Zastosowanie spigotowej metody jest znacznie lepsze
         */
        inventory.remove(type);
        player.updateInventory();
        Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), commandToExecute);
    }

@CoFFeIN04czy wyglądam jakby mi zależało?

dodam od siebie, że jeżeli twoja kolekcja służy do sprawdzania, czy jest w nim jakiś typ/obiekt to używamy HashSet

https://www.baeldung.com/java-hashset-arraylist-contains-performance

Odnośnik do komentarza
https://skript.pl/temat/52110-ci%C4%99zkie-i-niezrozumia%C5%82e-pocz%C4%85tki/#findComment-319014
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

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

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