Skocz do zawartości

TheMolkaPL

Użytkownik
  • Ilość zawartości

    536
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    13

Treść opublikowana przez TheMolkaPL

  1. Może nie ładujesz danych z konfiguracji do tego maxplayer (maxPlayers jak już).
  2. theKOXpoland - http://mcuuid.net/?q=theKOXpoland
  3. TheMolkaPL

    Wersja 1.8

    Nie da się... Skript nie wspiera numerów wersji klienta gry. Nie wspiera także Bukkit API, ale do tego łatwy i szybki dostęp w NMS. Więc po prostu w Skript się nie da, musisz mieć plugin.
  4. Owszem, ale właśnie kwestia metody zapisu jest tu kluczowa. Dodatkowo dochodzi do tego mała znajomość infrastruktury danego serwera. Informacji nigdy się nie powtarza, od tego są relacje, a te znajdują się już w innej tabeli, nie koniecznie od tego pluginu. Jeżeli uważacie Towarzyszu że przekazując moją wiedzę wymądrzam się to podajcie przykład. "zapełnienia pamięci maszyny" możecie mi zdefiniować co to znaczy? Może chodzi o różnice między int32 i int64? No właśnie... jeżeli statystyki serwera nie są resetowane, to po dłuższym czasie rzeczywiście ktoś może wykopać ponad 2 miliardy bloków. Dla przykładu podam znany nam wszystkim serwis YouTube. Przy jego programowaniu na pewno powstało pytanie - czy jakiś film, kiedykolwiek, zdoła zdobyć ponad 2 147 483 647 wyświetleń? I owszem! - stało się tak! Dobry programista pisze taki kod, aby do takich zdarzeń nie dochodziło. Język SQL także posiada swoje typy danych. Baza danych też potrzebuje w jakiś sposób te dane zapisać, czyż nie? Jest różnica między typem danych INT, czy INTEGER a BIGINT, czy BIGINTEGER - https://dev.mysql.com/doc/refman/5.5/en/integer-types.html Tu wolne miejsce w pamięci nie gra żadnej roli. Tutaj chodzi o typ zapisu danych. Mam nadzieję, że wytłumaczyłem, Pozdrawiam Robotniczo!
  5. Nie podaliście Towarzyszu całego błędu. Po kodzie domyślam się, że jest to NullPointerException. Wyrzucany jest on w przypadku, gdy próbujemy operować na null. Co to znaczy? Mamy sobie przykładowo zmienną Player player = null; player.cokolwiek która jest równa pustce. To znaczy, że mamy sobie zmienną o typie Player, natomiast nic nie posiada, jest pusta. Próba wykonania na niej jakiejkolwiek metody spowoduje wyrzucenie wyżej wspomnianego NullPointerException, często nazywany po prostu "NPE". Teraz wracając do Waszego kodu Towarzyszu. Po sprawdzeniu wszystkich akcji macie if, który sprawdza czy item, przedmiot, który został użyty do interakcji jest Material.PAPER. Teraz jaki jest tu błąd? Otóż wszystko będzie okej, jeżeli rzeczywiście będziemy trzymać w ręku jakiś przedmiot. Problem powstaje wtedy gdy spróbujemy integrować, czyli kliknąć myszką, gdy mamy pustą rękę. Spowoduje to, że metoda getItem() zwróci null. Następnie próbujecie na ItemStacku (bo to zwraca getItem()) wykonać metodę getType(), tutaj wywoływany jest NullPointerException. Dzieje się tak, ponieważ ten ItemStack z getItem() jest nullem. Działanie tego wytłumaczyłem trochę wyżej. Pytacie pewnie jak to naprawić. To nie jest żaden problem. Musimy sprawdzić czy ten ItemStack nie jest równy null. Aby uniknąć tworzenia zbędnej ilości bloków, czy tak jak to jest w Skript - tabowania. Najlepiej będzie to zrobić następująco: // Najpierw tworzymy zmienną "item", której wartością będzie // przedmiot którym dokonano interakcji w evencie. ItemStack item = event.getItem(); if (item == null) { // Kod w środku tego ifa wykona się jeżeli zmienna "item" // będzie nullem. Jeżeli tak się stanie robimy "return". // Return kończy działanie metody, jako, że metoda jest // "void", czyli pustką, nic nie zwracającą - wystarczy // samo wyrażenie "return". Po wykonaniu "return" kod // poniżej jego, jak i poza tym ifem już się nie wykona. return; } Robotnicze Pozdrowienia!
  6. A Polska dalej na beznadziejnym i patologicznym 1.7 XD
  7. FastLogin
  8. Otóż parametry, czy też argumenty w komendach podawane są jako tablica String. Tablica jest taką jakby listą, gdzie tutaj podawany jest ciąg znaków. Jest to więc lista ciągów znaków. Teraz pobieramy z niej informacje; pierwszym Stringiem jest nick gracza (powinniście sprawdzać czy ten Player r jest online). Następne Stringi powinny zostać zjednoczone w jeden string (przy czym każdy z nich powinien zostać oddzielony znakiem spacji). Można to zrobić następująco w czystej Javie: public String uniteStrings(String[] strings) { // Na początku tworzymy nowego "budowniczego" naszego Stringa. Do tego // budowniczego będziemy podawać kolejne Stringi z naszej tablicy. // Ostatecznie pobierzemy z niego gotowy String StringBuilder builder = new StringBuilder(); // Robimy pętlę przez prawie wszystkie Stringi w tablicy. W Javie zawsze // liczymy od zera, ale tutaj robimy wyjątek. Wszystko przez to, że pierwszy // argument w naszej tablicy jest nickiem gracza, który chcemy wyrzucić. // Zaczynamy więc od 2 argumentu, a więc od 1 (bo liczymy od 0, więc // odejmujemy 1). for (int i = 1; i < strings.length; i++) { // Kod wewnątrz tego for wykona się za każdym razem, gdy w tej tablicy // będzie się znajdować kolejny argument. Jeżeli wykonamy komendę // "/kick TheMolkaPL Hello world!", to TheMolkaPL pominiemy, bo // zapętlamy od drugiego argumentu (patrz wyżej). Następnie kod wewnątrz // tego for wykona się 2 razy. Pierwszy raz dla "Hello", a następnie dla // "world!" String string = strings[i]; // No dobrze mamy już ten String. Moglibyśmy dodać go już to tego // StringBuildera na początku, ale nie możemy zapomnieć, że argumenty // muszą być oddzielone znakiem spacji! Przecież nie chcemy powodu o // treści "HelloWorld!", tylko "Hello world!". W tym celu musimy // sprawdzić czy właśnie zapętlamy przez pierwszy String w tej tablicy. // Jeżeli tak, to wstawiamy go do StringBuildera jak jest, jeżeli nie to // przez dodaniem go tam dodajemy najpierw znak spacji. Dzięki temu // kolejne argumenty powodu (nie licząc tego pierwszego) będą // poprzedzone znakiem spacji. I znowu uwaga! Jak już wcześniej // wspomniałem, w Javie liczymy od zera, powinno być tu w takim razie 0, // natomiast w pierwszym Stringu mamy nick gracza, którego tutaj nie // chcemy! if (i == 1) { builder.append(string); } else { // "if ... else" - czyli - "jeżeli ... w innym przypadku". Kod // wewnątrz "if" wykona się jeżeli if zostanie spełniony, kod // wewnątrz "else" wykona się jeżeli ten wcześniejszy "if" nie // zostanie spełniony. Tak więc ten kod wykona się jeżeli nie jest // to pierwszy argument w powodzie. W takim wypadku najpierw // dodajemy spacje, potem String. builder.append(" "); builder.append(string); } } // Na koniec zwracamy gotowy String z tego StringBuildera. return builder.toString(); } Kod który wyżej podałem jest uproszczony. Ma problem powtarzania linijki "builder.append(string);" Dla kogoś takiego jak ja powinien wyglądać następująco: // Jeżeli i nie jest równe 1, != jest negacją, czyli zaprzeczeniem do ==. == // znaczy "jest równe", a więc != znaczy "nie jest równe". Krótko mówiąc, jeżeli // zmienna i nie jest równa 1. A więc wykonaj kod wewnątrz tego ifa, jeżeli nie // jest to pierwszy String z tych argumentów powodu. if (i != 1) { builder.append(" "); } // Zawsze! Zawsze dodajemy String który właśnie zapętlamy! builder.append(string); Dzisiaj powstały biblioteki, które upraszczają tego typu działania. Mamy przykładowo bibliotekę Apache Commons Lang, która jest już zaimplementowana w Bukkicie. Dzięki temu wystarczy użyć: StringUtils.join(args, " ", 1, args.length()); To znaczy - połącz Stringi z "args", oddziel je znakiem spacji " ", zacznij od 1 (czyli pomiń nick gracza) i zakończ na końcu tej tablicy. Pozdrawiam Czerwono!
  9. Wtedy prosicie jego autora o kod na przyklad poprzez e-mail. W ostateczności dekompilujecie, ale pamiętajcie! Kod zdekompilowany nigdy nie będzie taki jak przed kompilacją!
  10. Uruchom IP forwardning - wlaczacie ustawienie BungeeCord w spigot.yml. Dzięki temu gracze na serwerze nie mają IP BungeeCorda (najczęściej localhost), tylko ich realne. Nie oznacza to jednak, że port serwera nie trzeba zablokować w iptables.
  11. Nie dekompiluj kodu, ponieważ jest on publicznie dostępny - https://github.com/MysticCity/BowBash
  12. Okienka w Minecraft musicie podzielić na dwie sekcje. Po pierwsze jego tworzenie, wypełnianie oraz wysyłanie go do gracza. Po drugie klikanie - musicie nasłuchować InventoryClickEvent, weryfikować czy kliknięte inventory jest tym okienkiem GUI, następnie anulować kliknięcie. Weryfikację okienka należy wykonać poprzez sprawdzenie nazwy ekwipunku.
  13. Który z Towarzyszy to wymyślił? 

     

    1. Reedzev_
    2. bopke

      bopke

      Wymyśliła to bardzo dobra myśląca osoba na tym forum c:

  14. TheMolkaPL

    bedwars-rel

    Nie znam tego pluginu więc akurat nie pomogę
  15. TheMolkaPL

    bedwars-rel

    [21:56:37] [Server thread/INFO]: [BedwarsRel] Enabling BedwarsRel v1.3.4 [21:56:37] [Server thread/WARN]: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". [21:56:37] [Server thread/WARN]: SLF4J: Defaulting to no-operation (NOP) logger implementation [21:56:37] [Server thread/WARN]: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [21:56:38] [Server thread/INFO]: [BedWars] Game 'life' successfully loaded! [21:56:38] [Server thread/INFO]: [BedWars] Game 'life' successfully loaded! Nie ma tu nic sensownego. Może masz źle skonfigurowany?
  16. TheMolkaPL

    VOuchery

    Widzę Towarzyszu, że nie wiecie co to zmienna. Poszperałem w sieci i znalazłem dobrze tłumaczący to poradnik - https://www.javatpoint.com/variable-datatype. Musisz znać typ danych, który ta zmienna ma zapisać (tutaj Player), następnie nadać jej nazwę, oraz podać jej definicję (czyli czym tak na prawdę jest) - tutaj e.getPlayer();.
  17. TheMolkaPL

    bedwars-rel

    Jedyny sensowny błąd jaki się tu pojawia to nieaktualny SignColors, co ciekawe jego funkcję posiada Essentials, więc jest on całkowicie zbędny.
  18. TheMolkaPL

    Ixidi do zarządu??!?

    A jakiś program wyborczy?
  19. Nikomu nie dawajcie dostępu po prostu. Poza tym co tu niby mogli sprawdzić? - konto jak konto. A tak serio - zrobiliście sobie multikonto, dostaliście bana i nie wiecie co powiedzieć, żeby dostać unbana. "dałem bratu/siostrze/koledze/cioci/wujkowi/you name it (...) coś sprawdzić" - ile ja to razy od innych Towarzyszy słyszałem?
  20. Daj w komendzie [<text>]
  21. TheMolkaPL

    bedwars-rel

    Używajcie interpunkcji, ciężko zrozumieć co piszecie. Co znaczy że nie działa konsola? Zawsze możesz zajrzeć do logów i tam się upewnić.
  22. W HTML robisz format, strukturę, wygląd robisz natomiast w CSS. Przede wszystkim każdy kafelek, musi być oddzielnym divem. W każdym kafelku robisz img, którego zawartością będzie grafika. Następnie robisz div, który będzie opisem, oraz a, który będzie przyciskiem.
  23. Tą metodę dodał chyba Spigot, bo pierwszy raz ją widzę. Nie wiem dokładnie jak ona działa. Użyj lepiej ender.addEnchantment(...).
  24. Użyj im0.addEnchant(...)
  25. Gadam od rzeczy? O_o gdzie? O________o Poza tym to zdanie nie ma sensu... "kto gada od rzeczy" ... "dzisiaj (...) powiedział coś od rzeczy" xD Przed wysłaniem posta czytajcie co piszecie xD Ankieta jest zbędna. Tu chodzi o błąd językowy, ankieta nie ma tu nic do rzeczy.
×
×
  • Dodaj nową pozycję...