Skocz do zawartości

LeviBoyPL

Użytkownik
  • Ilość zawartości

    718
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    15

Treść opublikowana przez LeviBoyPL

  1. LeviBoyPL

    Config

    mysqlconfig: host: wartosc1 user: wartosc2 Map<String, Object> values = config.getConfigurationSection("mysqlconfig").getValues(true); for(Entry<String, Object> entry : values.entrySet()) { String key = (String) entry.getKey(); String value = (String) entry.getValue(); this.getLogger().info(key); this.getLogger().info(value); }
  2. public void sendActionText(Player player, String message){ PacketPlayOutChat packet = new PacketPlayOutChat(new ChatComponentText(message), (byte)2); ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); }
  3. Dokładnie, zatem musi odprowadzić podatek, bo nie spełnia podstawowego warunku, tzn oferuje usługę za pieniądze. Jest to nic innego jak sprzedaż usług. Tak samo podatek musza odprowadzać streamerzy, którzy korzystają z systemu dotacji.
  4. Musisz i to nie są darowizny.
  5. Możesz to zrobić na przykład za pomocą scoreboarda https://bukkit.org/threads/prefix-in-tab-and-nametag.380039/
  6. Za każdym razem nadpisujesz wartości z listy. Powinieneś zamiast tego tworzyć nowe listy. worlds: - name: world_nether title: "world_nether" enabled: false - name: world_the_end title: "world_the_end" enabled: false
  7. W większości masz rację, ale nie posypie się baza ani serwer. Baza danych po prostu zwróci odpowiedź, że taki klucz już istnieje i nie wykona się insert. Wtedy "nowy gracz" podczas swojej sesji będzie nabijał staty, które się nie zapiszą i tyle.
  8. Wpisz w konsoli java -version i daj output
  9. Nie byłbym tego taki pewny, skoro stronę ukradliście i podpisaliście jako swoją łamiąc w ten sposób licencję, nie wspominając o tym, że nieudolnie ją zedytowaliście i macie źle tagi rozmieszczone.
  10. Nadal nie poprawiłeś kodu według naszych instrukcji 2. Używasz #prepareStatement, po czym nie używasz najważniejszej funkcji tej metody, czyli parametrów. W zapytaniu używasz znaków zapytania (?), każdy znak zapytania jest indeksowany od 1 w górę. Później dla każdego parametru używasz metody PreparedStatement#setString(1, uuid) analogicznie #setInt(2, kills), #setLong(3, lastLogin) itd.. Poza tym poczytaj sobie https://github.com/RainbowDashLabs/DataSourceSample#why-use-try-with-resources to powinno rozwiązać Twój problem.
  11. ProtocolLib i PacketPlayOutChat to jest to czego szukasz, pole a będzie zawierać IChatBaseComponent, który zawiera tekst wiadomości. To może Ci pomóc: https://wiki.vg/Protocol#Chat_Message_.28clientbound.29
  12. 1. Powinieneś użyć tzn. connection pool, czyli połączyć się z bazą x razy (najlepiej do ustawienia w configu). I później używać połączeń naprzemiennie, zapisując je w liście. Odciąży to "jedno połączenie" i dzięki temu, jeżeli będziesz wykonywał duże zapytanie, albo pare małych to zawsze zostanie wybrane połączenie, które nie jest zablokowane dla tego zapytania. 2. Używasz #prepareStatement, po czym nie używasz najważniejszej funkcji tej metody, czyli parametrów. W zapytaniu używasz znaków zapytania (?), każdy znak zapytania jest indeksowany od 1 w górę. Później dla każdego parametru używasz metody PreparedStatement#setString(1, uuid) analogicznie #setInt(2, kills), #setLong(3, lastLogin) itd.. 3. Konwencja nazewnictwa w sql (w pytaniu jest mysql, ale dotyczy to też sqlite i wielu innych języków sql) - https://stackoverflow.com/a/62706057 4. Co do nazewnictwa to, niektóre nazwy atrybutów masz w liczbie mnogiej, a inne w pojedynczej - warto się zdecydować (Kills/BlockPlaced) 5. Dobrą rzeczą jest używanie cache. Z tego co widzę to jest w porządku całkiem zakodzony, trochę dziwnie, ale jeżeli działa to spoko. Ogólnie rzecz ujmując masz pojęcie i całkiem dobrze sobie radzisz. Jeżeli są to Twoje początki to prawdopodobnie tak wyglądałby kod osoby, która naczytała się poradników i oglądnęła jakieś kursy także jesteś na dobrej ścieżce rozwoju. Nic tylko życzyć powodzenia. ps co do 2 to warto sobie przygotować metody select/update(String zapytanie, String ... argumenty) i później w pętli setować sobie wartości dla czystej wygody
  13. Stwórz sobie obiekt w którym będą obie te wartości zachowane. Ewentualnie jeżeli chcesz się uprzeć to loopuj sobie tylko values() albo keySet() w zależności od potrzeby
  14. LeviBoyPL

    Błąd

    Podaj czaszki.sk, line 88. A najlepiej cały skrypt.
  15. Ło byku co Ty w ogóle, w bocie chcesz też stronę trzymać? Toż to nieopłacalne xd Zacznij od oglądania w miarę aktualnego poradnika, a najlepiej serii poradników. Mogę Ci polecić tę playlistę: Na pierwszy rzut oka może Ci się to wydawać głupie, ale uwierz mi, że takie problemy będziesz napotykał dosłownie cały czas, więc dużo efektywniej będzie jeśli faktycznie do tego przysiądziesz i napiszesz sobie tego bota jak trzeba.
  16. Jeżeli kodzisz plugin dla wersji 1.13+ to brakuje Ci deklaracji wersji api. Dopisujesz api-version: <pełna wersja, np. dla 1.16.5 bedzie to 1.16, dla 1.17.1 to 1.17>. Brakuje u Ciebie podstaw javy, którymi lepiej jest zająć się wcześniej, przed kodzeniem pluginów, w celu uniknięcia fundamentalnych błędów. Nazwy pakietów zawsze zaczynamy z małej litery. Nazwy klas - zawsze CamelCase. main: me.matriox.test2.Main name: TestPlugin version: '1.0' api-version: 1.18 commands: foo: description: Opis Btw błędy dobrze Ci sugerują - version to string, Ty użyłeś doubla, więc musisz otoczyć go apostrofami.
  17. Źle uzupełniłeś plugin.yml
  18. Więcej informacji. Co to za plugin PhoenixCrown, co robisz gdy występuje błąd, czy się powtarza, co jest nad i pod błedem w logach.
  19. LeviBoyPL

    Baza danych na Discord

    Jest to słaby pomysł właśnie ze względu na ratelimit + ogólny limit kanałów na discordzie wynoszący 500. Pytaniem jest czy możesz wykonać parę akcji na raz (tzn, za jednym razem edytować x wiadomości), bo jeżeli nie, to kolejkowanie tutaj nic nie da, wszystkie zmiany będą Ci wiecznie narastać w ramie. Takie rozwiązanie - ok jest ciekawe, ale niesie za sobą dużo ograniczeń i problemów.
  20. Przekonaj się W klasie main dodaj: @Override public onEnable() { System.out.println("działa"); }
  21. File -> Project Structure -> Project Settings -> Project -> Project SDK -> tu jest select z którego wybierasz JDK
  22. Podczas kompilacji pluginu użyłeś java 17, podczas gdy runtime używa java 8. Zmień wersję javy używanej do kompilacji i spróbuj jeszcze raz
  23. Jasno jest napisane, że nie ma takiej wersji API jak 1.15.2, jest tylko 1.15, to że sprawa się pogarsza to wynik tego że błędy lecą z Twojego pluginu
×
×
  • Dodaj nową pozycję...