Skocz do zawartości

kerpson

Użytkownik
  • Ilość zawartości

    1852
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    44

Treść opublikowana przez kerpson

  1. kerpson

    Config

    ehh po co ci onEnable ??? zrób prywatny konstruktor private Config() {} metode public static void loadConfig() (potem w klasie głównej przy metodzie onEnable załadujesz config tak: Config.loadConfig()) i w niej rób wszystko jak robisz saveDefaultConfig nie musisz dawać this.getConfig().options().copyDefaults(true); no i po co masz Boolean jako obiekt ? wystarczy zwykły boolean z małej litery Dodatkowo zauważ jak to jest u karolka KarolekDrop.getPlugin().saveDefaultConfig(); Odwołał się do głównej klasy W swojej klasie głównej możesz to zrobić np. tak public static Klasa getInstance() { return getPlugin(Klasa.class); } A w klasie Config coś takiego. FirstPlugin.getInstance().saveDefaultConfig(); Bierzesz się za rzeczy trudniejsze a nie masz totalnie pojęcia o podstawach, za szybko idziesz do przodu.
  2. kerpson

    Config

    klasa Config powinna być klasą gdzie będą zapisywane wszystkie zmienne z configu (jakieś Stringi z wiadomościami itd), mogą być one odczytywane statycznie ale nie tylko. Pamiętaj, że java opiera się na programowaniu obiektowym. Masz tu przykład od karolka https://github.com/KarolekFM/karolekDrop/blob/master/src/main/java/net/karolek/drop/Config.java
  3. kerpson

    Config

    Czemu masz 2 klasy z rozszerzeniem JavaPlugin ? Taki rozszerzenie ma mieć tylko jedna klasa , czyli główna
  4. kerpson

    Banowanie

    powinno być on connect, on join to akcja po dołączeniu już na serwer Zadam dziwne pytanie, czy ty wgl ten skrypt wgrałeś?
  5. nie korzystam ze skrytów ale patrząc na tej kawałem kodu to ma to mały sens według mnie albo jest dziwnie napisany Jeżeli źle znosisz krytykę, która ma pomóc w rozwoju skryptu to ciężko musisz mieć w życiu. Użytkownicy dali ci rady, dzięki którym możesz poprawić skrypt i go udoskonalać. Tak jak powiedział tymek:
  6. najlepiej mieć osobną klasę, w której będą zapisywane wszystkie rzeczy z configu a w innych klasach się tylko do niej odwoływać:)
  7. tobie potrzebne będzie to co w evencie ale musisz zrobić gdzieś sobie tą mapkę
  8. nie możesz w skrypcie mieszać spacji z tabami. Użyj albo 3 tabów albo 12 spacji, skrypt mówi ci, żebyś w tych linijkach użył 12 spacji
  9. kerpson

    CZYTAJ PONIŻEJ

    wyjaśnij dokładniej jak możesz
  10. kerpson

    Banowanie

    "expected 12 spaces but found 3 tabs" nie mówi ci to coś ? Jeżeli nie odsyłam cię do wujka tłumacza google
  11. Chyba najprościej będzie zrobić jakąś mapkę Map<ItemStack, Integer> map = new HashMap<>(); klucz (itemstack) to będzie przedmiot do kupienia (Key w mapce zawsze jest po to, żeby za jego pomocą określić przypisaną mu wartość, przykład: Map<Integer, String> map = new HashMap<>(); /w jakiejś metodzie czy coś. map.put(1, "liczba jeden"); /również w jakiejś metodzie. final String text = map.get(1); System.out.println(text); /*wyświetli w konsoli "liczba jeden"*/ ale println to tylko przykład wartość (Integer) to będzie cena tego przedmiotu Do tej mapki przy pętli możesz dodać przedmiot oraz jego cenę W evencie od klikania: @EventHanler public void onClick(InventoryClickEvent e) { /* sprawdzasz co tam chcesz, nazwe inventory itd.*/ ItemStack is = e.getCurrentItem(); /jest to kliknięty przemiot if (!map.containsKey(is)) { /w tym przypadku taki przedmiot nie istnieje w mapce, czyli powinieneś wykonać return, żeby nie wywaliło błędu return; } int price = map.get(is); /tu jest cena przedmiotu
  12. Nazwę klasy zaczynamy od dużej litery (tak na boku powiem)
  13. No to ja się przyczepie do tego, że podczas czyszczenia chatu czyści również konsolę. on chat: if {chatvip} is false: if player has permission "chat.vip": stop WTF
  14. jak wroce to ci pomoge na pv, bo to bedzie bardziej skomplikowane
  15. no to w configu możesz np zrobić coś takiego: Items: Sell: 1: #co tam chcesz enchantments: - 'durability:3' - 'damage_all:5' No i w tej pętli coś takiego Map<Enchantment, Integer> map = new HashMap<>(); for (String s : cfg.getStringList(path + ".enchantments")) { Enchantment ench = Enchantment.getByName(s.split(":")[0].toUpperCase()); if (ench == null) continue; int level = Integer.parseInt(s.split(":")[1]); map.put(ench, level); } is.addEnchantments(map);
  16. is.addEnchantment(Enchantment.ENCHANT, poziom);
  17. A to dobrze ;D
  18. Nie (chyba, że źle zrozumiałem), zgaduję, że przedmioty znajdują się w pliku config.yml, czyli podstawowy config. Możesz uzyskać cfg tak: FileConfiguration cfg = plugin.getConfig(); plugin możesz uzyskać poprzez odniesienie do instancji klasy głównej lub z pomocą czegoś takiego: Main plugin; public Klasa(Main plugin) { this.plugin = plugin } public void load() { FileConfiguration cfg = plugin.getConfig(); } Main to jest nazwa twojej klasy. a instancję klasy np. w taki sposób (w klasie glównej) public static Klasa getInstance() { return getPlugin(Klasa.class); }
  19. for (final String s : cfg.getConfigurationSection("Items.Sell").getKeys(false)) { final String path = "Items.Sell." + s; final ItemStack item = new ItemStack(Material.matchMaterial(cfg.getString(path + ".material")), 1); } Powinno działać, nie testowane Skrót cfg to konfiguracja pliku, którą można uzyskać poprzez FileConfiguration lub YamlConfiguration, poniżej linki przydatne https://bukkit.gamepedia.com/Configuration_API_Reference https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/configuration/file/YamlConfiguration.html https://hub.spigotmc.org/javadocs/spigot/org/bukkit/configuration/file/FileConfiguration.html
  20. Największym minusem jest pobieranie żywcem z użyciem komendy wszystkich wartości z configu Jest to ogromny minus
  21. kerpson

    EnderCraft

    Bez dobrych ustawień mało ci ten paper da
  22. kerpson

    Spigot - błąd

    no to poczytaj o tym/znajdź jakiś poradnik + pozmieniaj formatowanie w kodzie na utf-8 jak się da
  23. kerpson

    Spigot - błąd

    Czy masz kodowanie UTF-8 ?
  24. brakuje : na końcu
×
×
  • Dodaj nową pozycję...