-
Ilość zawartości
1852 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
44
Treść opublikowana przez kerpson
-
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.
-
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
-
Czemu masz 2 klasy z rozszerzeniem JavaPlugin ? Taki rozszerzenie ma mieć tylko jedna klasa , czyli główna
-
powinno być on connect, on join to akcja po dołączeniu już na serwer Zadam dziwne pytanie, czy ty wgl ten skrypt wgrałeś?
-
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:
-
najlepiej mieć osobną klasę, w której będą zapisywane wszystkie rzeczy z configu a w innych klasach się tylko do niej odwoływać:)
-
tobie potrzebne będzie to co w evencie ale musisz zrobić gdzieś sobie tą mapkę
-
Skrypt na pieniądze za bycie na serwerze
kerpson odpowiedział(a) na dex00x0x0 pytanie w Pytania i problemy
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 -
wyjaśnij dokładniej jak możesz
-
"expected 12 spaces but found 3 tabs" nie mówi ci to coś ? Jeżeli nie odsyłam cię do wujka tłumacza google
-
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
-
Nazwę klasy zaczynamy od dużej litery (tak na boku powiem)
-
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
-
jak wroce to ci pomoge na pv, bo to bedzie bardziej skomplikowane
-
Wprowadzenie regulacji prawnych związanych z większą ilością spoilerów niż jeden
kerpson odpowiedział(a) na skript.pl temat w System wniosków
jakiś typo robi sb beke a wy łykacie XD -
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);
-
is.addEnchantment(Enchantment.ENCHANT, poziom);
-
A to dobrze ;D
-
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); }
-
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
-
TzPRewards - skrypt na nagrody za czas spędzony na serwerze w Gui
kerpson odpowiedział(a) na THEzombiePL temat w Skrypty
Największym minusem jest pobieranie żywcem z użyciem komendy wszystkich wartości z configu Jest to ogromny minus -
Bez dobrych ustawień mało ci ten paper da
-
no to poczytaj o tym/znajdź jakiś poradnik + pozmieniaj formatowanie w kodzie na utf-8 jak się da
-
Czy masz kodowanie UTF-8 ?
-
brakuje : na końcu
