Skocz do zawartości

Ixidi

Senior administrator
  • Zawartość

    1 854
  • Rejestracja

  • Wygrane w rankingu

    7

Aktywność reputacji

  1. Super
    Ixidi przyznał reputację dla SzifterSerwer dla wszystkich!   
    Nie dało się więcej emotek? Tego nie da się czytać
  2. Polubienie
    Ixidi otrzymał reputację od bvczZmiana w wątkach   
    Usuwanie swoich starych postów które mają wartość, trollowanie, usuwanie postów, w których zadało się pytanie i uzyskano odpowiedź, tym samym zabierając przyszłym użytkownikom możliwość szybkiego znalezienia odpowiedzi itd. itd.
  3. Polubienie
    Ixidi przyznał reputację dla boleknowakSkriptJam/ LudumDareSK   
    Było takie coś tworzone i nie wypaliło.
  4. Polubienie
    Ixidi otrzymał reputację od PeridotPlugin na sidebar   
    Masz błąd w pętli for, nauczyć się podstaw Javy.
  5. Super
    Ixidi przyznał reputację dla yooniksxD-Bans - Plugin na bany   
    pełno niepoprawnego kodu typu side-effects w klasie user (dodawanie do listy userow w konstruktorze)
    statyczny usermanager z LISTA userow, zamiast jakas mapka z uuid,user
    nazewnictwo paczek - np. "object" ogolnie to kazda klasa dziedziczy po object wiec no nw po co tylko user traktujesz jako obiekt i on jest w tym package
    if (ConfigManager.getPlayerNameFilter()) { for (User u : UserManager.getUsers()) { names.add(u.getName().toUpperCase()); normalNick.add(u.getName()); } if ((names.contains(e.getName().toUpperCase()) && (UserManager.get(e.getUniqueId()) == null))) { String normal_nick = ""; for (int i = 0; i < names.size(); i++) { if (normalNick.get(i).equalsIgnoreCase(e.getName())) { normal_nick = normalNick.get(i); } } no ogolnie to ja bym tego wgl nie uzywal skoro jest pelno innych pluginow na bany, wiecej funkcji i lepiej napisane
  6. Super
    Ixidi przyznał reputację dla LibterStrona skript --> java   
    To tak nie działa.
  7. Super
  8. Super
    Ixidi przyznał reputację dla Libterkotlinek.pl - polskie wsparcie języka Kotlin   
    Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    Polskie wsparcie języka Kotlin
    Link bezpośredni: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    Co można tam robić?
    Dyskutować o nowościach ze świata Kotlina i jego zestawieniu z innymi językami. Uzyskać niezbędne wsparcie w nauce Kotlina. Uzyskać pomoc związaną ze wszelkimi zastosowaniami Kotlina. Otrzymywać recenzje swojego kodu w Kotlinie i wystawiać je innym. Szukać ludzi do wspólnych projektów w Kotlinie.  Pomagać innym w nauce i zastosowaniach Kotlina. I wiele, wiele innych, Kotlinowych rzeczy - możliwości są nieograniczone Co to jest Kotlin?
    To innowacyjny język programowania stworzony przez JetBrains (twórców IntelliJ Idea i wielu innych podobnych IDE). Pierwotnie bazowany na Javie i Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!. Dzięki dynamicznemu rozwojowi obecnie jest kompilowany do JVM (maszyny wirtualnej Javy), JavaScriptu, a także natywnie umożliwiając integrację m. in. z WinAPI czy systemem iOS. Dodatkowo posiada biblioteki pozwalające na zapisanie w nim HTMLa oraz CSSa.
    Jakie ma zastosowania?
    W przypadku tak wszechstronnego języka możliwości są naprawdę spore, więc wymienię tylko jedne z ważniejszych.
    Aplikacje na Androida (i częściowo iOS). Fullstack czyli backend i frontend. Pluginy do Minecrafta. Drobne programy, skrypty i wiele, wiele innych. Przekonałeś mnie! Jak mogę dołączyć?
    Link z zaproszeniem znajduje się na górze tematu. Dziękuję za uwagę i życzę wielu udanych Kotlinowych projektów
  9. Super
    Ixidi przyznał reputację dla bvczLista zmian   
    11.05.2019:
    Utworzenie działu Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Utworzenie działu Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Utworzenie działu Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
  10. Super
    Ixidi przyznał reputację dla LibterRejestr zarządzeń   
    Zarządzenie @Libter 01/03.05.2019:
    @bvcz zostaje administratorem. @Szifter zostaje moderatorem.
  11. Polubienie
    Ixidi przyznał reputację dla LibterAdministracja i moderacja   
    Rozporządzenie o administracji i moderacji
    (na podstawie §3.2.2 i §3.2.3 regulaminu globalnego)
    Hierarchia rang:
    Właściciel Senior administrator Administrator Próbny administrator Moderator Próbny moderator Uprawnienia:
    Właściciel - pełne administracyjne i pełne moderacyjne Senior administrator - niemal pełne administracyjne i pełne moderacyjne Administrator - zwykłe administracyjne i pełne moderacyjne za wyjątkiem usuwania zawartości  Próbny administrator - ranga istnieje tylko na potrzeby hierarchii i ma takie same uprawnienia Moderator - zwykłe moderacyjne Próbny moderator - ranga istnieje tylko na potrzeby hierarchii i ma takie same uprawnienia Nadawanie i odbieranie:
    Następuje zgodnie z wytycznymi właściciela przez niego samego lub senior administratora. Zostaje zwyczajowo zapisane jako Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! zgodnie z wzorem:  
  12. Polubienie
    Ixidi przyznał reputację dla knugiGrupowe TP   
    Robisz Random w pętli, dlatego jeden gracz idzie na inne koordynaty, drugi na inne.
    Zrób Location przed pętlą, a w pętli tylko używaj p.teleport i send message  
  13. Polubienie
    Ixidi otrzymał reputację od WiktorMasteRjak zablokować jakiś katalog w linux   
    Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
  14. Polubienie
    Ixidi otrzymał reputację od knugiRejestr zarządzeń   
    Zarządzenie @Ixidi 01/27.04.2019:
    @knugi zostaje próbnym moderatorem.
  15. Rak
    Ixidi przyznał reputację dla HotAngel2K17Prosta pomoc - Łatwa reputacja   
    every 1 second: loop all players: if {cooldown::%loop-player%} > 0: remove 1 from {cooldown::%loop-player%} @Piecia601Tylko sb. wytabuj
  16. Polubienie
    Ixidi przyznał reputację dla NickuZakładka na forum poświęcona moddingowi itp.   
    Stworzenie działu nie wymaga dużego nakładu pracy, jeżeli nie będzie się cieszyć dużą popularnością to można go usunąć, a dział idealnie się odnajdzie w tematyce forum. Jestem jak najbardziej za i daje +1 w wniosku
  17. Super
    Ixidi otrzymał reputację od Piecia601Pierwszy plugin do gry Minecraft w IntelliJ.   
    Witajcie
    Na internecie, jest wiele poradników o tym, jak rozpocząć swoją przygodę z pisaniem wtyczek do Minecrafta.
    Jednak zdecydowana większość pokazuje, jak robić to z pomocą IDE o nazwie Eclipse.
    Dzisiaj, pokażę jak robić to z pomocą innego programu, mianowicie IntelliJ.
    Zaczynajmy!
    Minecraft pierwotnie został napisany w języku programowania, który nazywa się Java.
    Silnik serwera tej gry, również napisany jest w tym języku i to właśnie Javy będziemy używali do tworzenia pluginów.
    Przed rozpoczęciem, należy jednak zapoznać się z podstawami tego języka, naprawdę, będzie Ci o wiele łatwiej
    Oto kilka kursów w języku polskim:
    Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! Po zapoznaniu się z kursami i napisaniu kilku podstawowych programów, przejdźmy do części właściwej.
    1) Instalacja JRE oraz JDK.
    Przed rozpoczęciem tworzenia czegokolwiek w Javie, musimy ją zainstalować.
    JRE (Java Runtime Environmen) to środowisko, które pozwala uruchamiać programy napisane w Javie.
    Pobieramy je tutaj: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    JDK (Java Development Kit) jest to pakiet, niezbędny do programowania w tym języku. 
    Pobieramy je tutaj: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    Po pobraniu, po prostu je instalujemy. Instalacja jest bardzo intuicyjna.
    Sprawdźmy teraz, czy wszystko zrobiliśmy dobrze.
    Uruchamiamy wiersz poleceń. (Win + R, a następnie wpisujemy cmd i klikamy Enter)
    W oknie, które się ukaże wpisujemy java. Jeśli dobrze zainstalowaliśmy JRE, powinniśmy ujrzeć coś takiego:
    Sprawdźmy teraz JDK. Wpisujemy javac. Widzimy coś takiego:
    Co teraz? Musimy dodać ścieżkę folderu \bin\ dla JDK do zmiennej środowiskowej Path. 
    Jak to zrobić? Na początek, musimy skopiować ścieżkę folderu \bin\.
    Wchodzimy w Mój Komputer > Dysk C; > Program Files > Java > jdknumer_wersji > bin i kopiujemy ścieżkę:
    Teraz klikamy PPM na Mój Komputer > Właściwości > Zaawansowane Ustawienia Systemu > Zaawansowane > Zmienne Środowiskowe.
    Teraz musimy znaleźć zmienną Path. Następnie zaznaczamy ją i klikamy Edytuj.
    ( Uwaga! Przed jakąkolwiek zmianą radzę zapisać aktualną ścieżkę! )
    Teraz, na końcu dopisujemy ; i wklejamy skopiowaną ścieżkę i klikamy Ok > Ok.
    Tutaj mały schemat:
    Teraz ponownie uruchamiamy wiersz poleceń i wpisujemy javac.
    Jeśli zobaczymy coś takiego, to zakończyliśmy instalacje JRE i JDK.
    2) Instalacja i uruchomienie IntelliJ.
    Intellij pobieramy ze strony Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!. (Wybieramy wersje Community)
    Następnie instalujemy pobrany program, tutaj również instalacja jest bardzo intuicyjna. 
    Po instalacji, przyszła pora na pierwsze uruchomienie.
    Uruchamiamy nasze IDE.
    W pierwszym okienku zaznaczamy Do not import settings i klikamy OK.
    Następnie według własnego upodobania, wybieramy UI, ciemne lub jasne. Ja wybiorę ciemne.
    Teraz wystarczy kliknąć Next i Start using IntelliJ IDEA.
    Ukaże nam się takie okno:
    Brawo! Przejdźmy do następnej części.
    3) Tworzenie projektu.
    Klikamy Create New Project. W następnym okienku wybieramy Java.
    Teraz musimy wskazać programowi SDK. Klikamy New i podajemy ścieżkę do katalogu z JDK. (C:\Program Files\Java\jdknumer_wersji\)
    Klikamy dwa razy Next. Teraz wpisujemy nazwę naszego projektu i podajemy ścieżkę, gdzie zostanie zapisany.
    Ja swój projekt nazwę Poradnik.
    Klikamy Finish.
    Ujrzymy takie oto okno.

    Po lewej stronie znajduje się source tree. To właśnie tu będziemy tworzyć wszystkie pliki.
    Teraz musimy dodać bibliotekę, będzie nią spigot. Pobieramy go stąd: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    Wybieramy wersję, pod którą będziemy pisali. Ja wybiorę 1.13.2.
    Teraz musimy dodać to do naszego projektu.
    Klikamy File > Project Structure i z menu po lewej stronie wybieramy Libraries.
    Następnie klikamy na zielony +, wybieramy Java, podajemy ścieżkę do naszej biblioteki i klikamy OK.
    Jeśli wszystko zrobiliśmy dobrze, będzie wyglądać to tak:
    Klikamy OK, następnie Apply i OK.
    Świetnie! Możemy teraz zacząć pisać
    4) Pierwsza komenda.
    Na początek stwórzmy package. Jest to tak jakby połka, na której coś trzymamy - klasy. Każda ma unikalną nazwę. 
    Stwórzmy go. Klikamy PPM na src, New > Package.
    Package nazywamy małymi literami w następujący sposób.
    Przypuśćmy, że posiadasz domenę example.com. Twój package będzie nazywał się com.example.poradnik.
    Jeśli nie posiadasz lub nie chcesz nazywać packagów domeną, nazwij go po prostu me.twojnick.poradnik.
    Ja posiadam domenę ixidi.pl, więc package nazwę pl.ixidi.poradnik.
    Wpisujemy nazwę swojego package i kliknij OK.
    Jak widzisz, w twoim source tree pojawił się nowy package  
    Stwórzmy teraz klasę. Klikamy PPM na nasz package New > Class.
    Klasy z kolei nazywamy Wielką literą.
    Istnieją dwie szkoły nazywania głównych klas.
    Main NazwapluginuPlugin, w moim przypadku PoradnikPlugin Ja nazwę moją główną klasę, PoradnikPlugin.
    Wpisujemy nazwę, klikamy i OK. Wszystko powinno wyglądać tak:
    Rozszerzmy teraz naszą klasę główną, o klasę JavaPlugin. W tym celu
    public class PoradnikPlugin zmieniamy na 
    public class PoradnikPlugin extends JavaPlugin Ale zaraz, czemu słowo JavaPlugin świeci się na czerwono?
    Znaczy to, że musimy zaimportować klasę JavaPlugin.
    W tym celu przechodzimy kursorem na czerwone słowo, klikamy LPM, a następnie używamy skrótu ALT + Enter i wybieramy Import class.
    Tak właśnie importuje się klasy. Skrót ten przydaje się też w wielu innych rzeczach, warto go zapamiętać 
    Dodajmy teraz dwie metody (tak w Javie nazywamy funkcje), dziedziczone z klasy JavaPlugin - onEnable i onDisable.
    Jak sama nazwa mówi, wykonują kolejno podczas włączenia i wyłączenia pluginu.
    Zacznijmy pisać onEn i tutaj widzimy jedną z wielu zalet Intellij. Podpowiada nam o jaką metodę może nam chodzić.
    Wybierzmy public void onEnable() {...} i kliknijmy Enter.
    Tak samo zróbmy z onDisable.
    Teraz zróbmy coś wewnątrz metod. Wyślijmy np. wiadomości do konsoli.
    Służy do tego np. metoda info() klasy Logger. Wywołujemy ją w następujący sposób.
    this.getLogger().info("Wiadomosc"); Nasz kod powinien wyglądać tak:
    package twojpackage; import org.bukkit.plugin.java.JavaPlugin; public class PoradnikPlugin extends JavaPlugin { @Override public void onEnable() { this.getLogger().info("Wiadomosc przy wlaczeniu."); } @Override public void onDisable() { this.getLogger().info("Wiadomosc przy wylaczeniu."); } } Ale po co nam plugin, który tylko wysyła wiadomość do konsoli?
    Dodamy teraz komendę.
    Przejdźmy kursorem pod metodę onDisable, i zacznijmy pisać onCom. Jak widać, tutaj również nasze IDE pomaga.
    Metoda o którą nam chodzi to onCommand. Wybierzmy ją. Nasz kod wygląda tak:
     
    package twojpackage; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; public class PoradnikPlugin extends JavaPlugin { @Override public void onEnable() { this.getLogger().info("Wiadomosc przy wlaczeniu."); } @Override public void onDisable() { this.getLogger().info("Wiadomosc przy wylaczeniu."); } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { return true; } } Tutaj widzimy, że po słowie public, zamiast void, występuje boolean. Znaczy to, że metoda musi zwracać wartość boolean. (Przybiera ona dwie wartości true lub false)
    Słowo, które  zatrzymuje dalszą część metody to return.
    Jeśli metoda coś zwraca, po słowie return musi pojawić się zwracana wartość.
    Metoda onCommand zostanie wywołana gdy ktoś (nie ważne czy gracz, czy konsola) użyje komendy.
    Powiedzmy, że chcemy sprawdzić, czy wysyłający jest graczem czy konsolą i wysłać odpowiedni komunikat.
    Najpierw sprawdźmy, czy komenda, którą wpisał gracz, to właśnie ta o którą nam chodzi.
    Użyjmy do tego metody equalsIgnoreCase() klasy String. Porównuje ona dwa Stringi, bez względu na wielkość liter.
    Jako parametr, podajemy ciąg znaków (String), z którym chcemy porównać wartość.
    Nazwijmy więc naszą komendę sprawdz. 
    Nazwę wpisanej komendy uzyskujemy przez
    command.getName() a więc kod który sprawdzi, czy wpisana komenda to sprawdz będzie wyglądał następujaca
    if (command.getName().equalsIgnoreCase("sprawdz")) { } Wiemy już że komenda się zgadza, sprawdźmy teraz czy wysyłający jest graczem.
    Służy do tego słówko instanceof.
    Aby więc sprawdzić czy wysyłający jest graczem używamy kodu:
    if (sender instanceof Player) { } Słówko Player świeci się na czerwono. Co musimy zrobić? Zaimportować, tak samo jak robiliśmy to z JavaPlugin.
    Wiemy już, że komenda się zgadza, a wysyłający jest graczem.
    Wyślijmy teraz wiadomość informującą. Do wysłania wiadomości służy metoda sendMessage().
    Aby wysłać więc wiadomość użyjemy kodu:
    sender.sendMessage("Jestes graczem!"); Brawo! Chcemy jednak, że jeśli wysyłający jest konsolą, to wyśle się inna wiadomość.
    Zastosujemy tutaj else. Kod po else wykonuje się, jeśli warunek w if nie jest spełniony.
    Kod na wysłanie wiadomości do konsoli, wygląda tak samo. Musimy zmienić tylko treść.
    Nasz kod powinien wyglądać teraz tak:
     
    package twojpackage; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; public class PoradnikPlugin extends JavaPlugin { @Override public void onEnable() { this.getLogger().info("Wiadomosc przy wlaczeniu."); } @Override public void onDisable() { this.getLogger().info("Wiadomosc przy wylaczeniu."); } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (command.getName().equalsIgnoreCase("sprawdz")) { if (sender instanceof Player) { sender.sendMessage("Jestes graczem!"); } else { sender.sendMessage("Jestes konsola!"); } } return true; } } Świetnie! Właśnie skończyliśmy pisać kod.
    Teraz stwórzmy plik plugin.yml. Zawiera on informacje potrzebne serwerowi przy ładowaniu pluginu.
    Kliknijmy PPM na nasz projekt (nie na src!) New > File i nazwijmy go plugin.yml. Klikamy OK.
    Plik plugin.yml musi zawierać trzy podstawowe informacje:
    Nazwę pluginu name Wersje pluginu version Ścieżkę do klasy main main Oprócz wymaganych informacji, może również zawierać informacje dodatkowe.
    Więcej o tym pliku tutaj: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
    Tak więc mój plugin.yml powinien wyglądać tak:
    name: PoradnikPlugin version: 1.0 main: pl.ixidi.poradnik.PoradnikPlugin Z racji, iż stworzyliśmy komendę, musimy pokazać serwerowni przy ładowaniu pluginu, że takowa istnieje.
    Dodajemy więc następującą frazę:
    commands: sprawdz: description: "Plugin pokazujacy czy jestes graczem" aliases: [spr, spraw] permission: sprawdz.sprawdz permission-message: "Nie masz uprawnien!" Wymagana jest tylko część do słowa sprawdz. Dodałem tu jednak często używane elementy.
    Oznaczają one:
    description - Opis naszej komendy. aliases - Aliasy komendy, możemy ją wywołać przez wpisanie sprawdz, spr lub spraw. permission - Uprawnienie wymagane do użycia komendy. permission-message - Wiadomość, wysyłana jeśli nie posiada się uprawnienia. Nasz plugin.yml, source tree oraz PoradnikPlugin.java powinny wyglądać tak:
    5) Kompilacja
    Możemy teraz przejść do czegoś, co wiele osób uważa w Intellij za trudne - kompilacji.
    Najprościej mówiąc jest to zamiana kodu źródłowego, na kod maszynowy.
    Aby to zrobić, klikamy File > Project Structure. Z menu po lewej stronie wybieramy Artifacts.
    Następnie klikamy na zielony +,  JAR > From modules with dependencies.
    Wybieramy nasz projekt i klikamy OK.
    Teraz wybierzmy ścieżkę, gdzie zostanie zapisany nasz skompilowany plugin.
    Po niżej widzimy dwa okienka:
    W pierwszym od lewej, widzimy co będzie zawierał nasz skompilowany plik jar. W drugim znajdują się elementy, które możemy dodać. Na początek usuńmy z naszego jara bibliotekę spigota, jest on naszym serwerem, nie potrzebujemy go skompilowanego w projekcie.
    Klikamy na niego PPM > - Remove.
    Teraz musimy dodać do projektu nasz plik plugin.yml.
    Klikamy na zielony + > File i wybieramy nasz plik plugin.yml.
    Powinno wyglądać to tak:

    Następnie klikamy Apply i OK.
    Stworzyliśmy artefakt, teraz pozostaje tylko skompilować.
    Klikamy Build > Build Artifacts wybieramy nasz projekt i klikamy Build.
    Teraz musimy chwileczkę poczekać. Kiedy kompilacja dobiegnie końca, w lewym dolnym rogu zobaczymy taki oto napis:
    Brawo!
    Teraz wystarczy tylko wrzucić nasz skompilowany plik do katalogu plugins naszego serwera i sprawdzić działanie
    To by było na tyle, powodzenia
     
  18. Polubienie
    Ixidi otrzymał reputację od QotrekLogowanie/Rejestracja   
    Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
  19. Super
    Ixidi otrzymał reputację od yooniksProblem z action barem   
    Akurat tutaj nie używa, a tak ogólnie to korzysta się z repo tego samego w gradle.
  20. Polubienie
    Ixidi otrzymał reputację od jaku49Normal.maxc.pl   
    Ja rozumiem, że prezentacja może być zrobiona na "odwal się" ale bez przesady, dodaj podstawowe informacje.
  21. Polubienie kappy
    Ixidi przyznał reputację dla HotAngel2K17Prosty skrypt na drop!   
    No dobra tym mnie przekonasz
  22. Super
    Ixidi przyznał reputację dla SzifterProsty skrypt na drop!   
    A po to jest dział nauka by się czegoś nauczyć, nawet totalnych podstaw jak to ujmujesz.
     
    A dla autora jednak szacun, bo warto się uczyć tworzenia skryptów, nawet jeśli ten jest banalny to źle nie wygląda.
  23. Tak działa komunizm
    Ixidi otrzymał reputację od 3meraldK[WRZESIEŃ] Skrypt Miesiąca #49   
    Nikt się nie zgłosił.
    Konkurs zostaje zawieszony do odwołania. 
  24. Polubienie
    Ixidi otrzymał reputację od yooniksTitle   
    No nie do końca.
    Należy użyć tych niżej, najlepiej z refleksjami.
  25. Polubienie
    Ixidi otrzymał reputację od AfrapulSkrypt helpOp   
    HelpOp jak sama nazwa mowi, to wiadomosc do graczy z op.
×