Skocz do zawartości

yooniks

Użytkownik
  • Ilość zawartości

    987
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    13

Treść opublikowana przez yooniks

  1. na pewno nie paintem xD Poczytaj o dekompilatorach i pobierz sobie np. luytena, lub zdekompiluj to online na javadecompilers.com A co tam ciekawego masz
  2. yooniks

    Tnt w wodzie

    Połóż blok w TNT przed wybuchem, wtedy już nie będzie w wodzie i wybuchnie normalnie (tak myślę) oraz https://forums.spongepowered.org/t/obsidianbreaker-make-obsidian-blocks-damageable-by-explosions/23703
  3. [14:48:41 INFO]: UUID of player Mati_08151 is Jakies tam fajne UUID XDDDDDDDDDD nw co w tym smiesznego xd każdy twoje uuid może mieć kiedy chce, to nie ip a co do samego crashu - prawdopodobnie wina skriptu. usuwaj po kolei skrypty i sprawdź którego to wina. Przejrzyj kod, zobacz co jest podczas wejścia na serwer co może zlagowac serwer
  4. Skoro szukasz sponsora i programisty, to co TY oferujesz? Wspomniałeś coś o widzach/fanach, ale tego nie rozwinales, jesteś ytberem? Skoro nie oferujesz rozeklamowania serwera, plików, czegokolwiek to po co komuś ktoś kto tylko będzie robił to co randomowy typ?
  5. List regions = x; Region base = y; Location baseCenter = matchRegionCenter(base); for (Region region : regions) { //znajdź środek regionu Location center = matchRegionCenter(region); if (baseCenter.distance(center) + region.size() < 10) { //Region region jest blisko regionu base } } no mniej więcej, tylko przyklad, musisz sam to dobrze zlozyc @edit zamiast location baseCenter (jako lokacja regionu) zmień po prostu na player#getLocation bo nie doczytalem
  6. Wykonaj metode undo obiekcie EditSession
  7. Skoro możesz zrobić paste to możesz i undo ;v dokumentacja worldedita plugin;(
  8. Co ty wgl napisałeś xD? Na co ty teraz odpisałeś? Może w niedzielę będę miał czas to się pobawie
  9. Napisałem że potestuje, ale nie napisalem kiedy - jak na razie to realizuje pełno zleceń dla polskich jak i zagranicznych klientów, więc każdy wolny czas (po szkole itp) przeznaczam na coś ciekawszego niż testowanie twojego serwera. Ten serwer nie osiąga nawet 10 graczy, u mnie za 10zl serwery 100+ osób miały poważne problemy z crasherkami a stoją stabilnie, no a cena się różni, twoja to jakaś kosmiczna
  10. Myślę, że to jak pomagam innym na tym forum też wpływa na to jak postrzegają mnie inni użytkownicy i widać, że znam się na rzeczy Co innego było by jakbym to ja prosił tutaj co chwile o pomoc. Jeżeli już tak mielibyśmy podchodzić - to każdy kto tutaj negatywnie skomentował mój temat nic u mnie nie zamawiał (a jedynie kupił gotową rzecz, zrobioną dawno - no ale to już inny "temat", ponieważ bardziej chodziło o utratę kontaktu) - albo po prostu mają ze mną złe wspomnienia - np. lagowanie im serwera itp. Każdy może się wypowiedzieć
  11. Antycrasher za 250zl/msc? XD Trochę śmieszne się to wydaje, i to tylko na 1.8, a co do botow - masz świadomość tego że wystarczy kilka tysięcy połączeń na sekundke i taki antibot padnie? Może podałbys nazwę serwera z takim twoim anty crashem? Mój kosztuje 12zl (a używa go 300+ serwerow) i to na zawsze, wysoko się cenisz, chętnie bym to stestowal w przyszlosci
  12. Jestem w stanie coś takiego napisać (stronka prosta, ty będziesz musiał ogarnąć sobie jakiś fajny styl (tzn. kolorki, lepsze położenie przyciskow itp) możesz napisać pv.
  13. Załaduj konfiguracje a potem zapisz ja w pliku.
  14. final File languages = new File (plugin.getDataFolder(), "languages"); languages.mkdir(); zrób zamiast twojego lang1
  15. Nie polecam na większe serwery @edit mam juz troche czasu wiec sprobuje ci pomóc "udoskonalić" troche ten plugin Dodaj wsparcie dla innych wersji - nie wiem jak to zrobisz - albo refleksje albo dla każdej wersji rob oddzielnie implementacje z nms. (tzn. interfejs pingchecker i np. pingchecker_1_8_r3 implementacja z uzyciem nms od 1.8.8) Jezeli chodzi o kod (raczej ten "slabo napisany") public static Main inst; public static Main getInstance() { if (inst == null) { return new Main(); } return inst; } public void onEnable(){ inst=this; Szkoda ze nie wiesz jak to dziala =( Gdy instancja jest nullem to tworzysz nawet tysiące takich obiektów (jak tysiac razy zostanie wywolana metoda getinstance() przed wywolaniem metody onEnable()) zamiast zwracac niepotrzebnie nowy obiekt zrob return inst = new Main() lub od razu zrob cos w stylu getPlugin(Main.class) bo przeciez jest juz taka metoda w JavaPlugin. new Task().runTaskTimerAsynchronously(this, 1L, 1L); No i po co puszczac takiego taska co 1 ticka? Skoro mozna co kilka sekund Czemu zapisujesz config w onEnable? Klasa "Ping" public Ping(final Main plugin){ this.plugin = plugin; this.plugin.getCommand("ping").setExecutor(this); } Czemu rejestrujesz komende w konstruktorze? Taska mogles puscic juz normalnie, ale komendy tak samo rejestrowac nie mozesz .. =( to sie nazywa side-effects (zla praktyka, nie rob tak) UserManager.setPingPowiadomienia(p.getName(), 1); Czemu usermanager i set jest po angielsku a pingpowiadomienia juz po polsku? To jakas nowa moda na mieszanie angielskiego z polskim, czy po prostu nie wiedziales jak sa powiadomienia po angielsku? =( args.length == 0 || (args.length > 1) Od czego to jest? UserManager.setPingPowiadomienia(p.getName(), 0); Czemu zamiast uzywac booleana - true/false to jest 1 albo 0? Od tego sa booleany =( jak zwracasz false w onCommand to informujesz serwer ze komenda nie wykonala sie prawidlowo Paczek nie nazywa sie w liczbie mnogiej i nie rob takich skrótow =( zamiast cmds to command, zamiast utils to util. Powiedzmy ze chce zedytowac twoj plugin - widze ze w mainie jest klasa Ping - ale g*wno jest napisane co to jest. Czy to komenda czy to zwykly obiekt =/ Masz paczkę tasks a w niej klasa Task xD to albo robisz tą paczke aby tam przechowywac rozne taski albo jeden ktory nic konkretnie nie mowi o tej klasie - po prostu Task. I skąd ktoś ma wiedzieć od czego ta klasa jest? Np. z nazwy "PingCheckerTask" wiadomo od czego to jest - ping checker task. Sprawdza ping i do tego jest taskiem. Do tego metode getPing trzymasz w dwóch klasach (duplicated code) Czemu paczka util zawiera klase Api? I wgl czemu to sie nazywa api? Api do mogloby byc gdybys cos dostarczal ze swojego pluginu dla innych pluginow.. Np ile razy gracz mial zbyt duzy ping lub cos w tym stylu. Do tego to powinien byc obiekt a nie klasa statyczna z wysylaniem title/subtitle. Jak juz to moglbys to dac gdzies indziej lub od razu nazwac TitleUtil lub coś w tym stylu (ja na twoim miejscu tez bym zrobil interfejs titlesender i implementacja dla 1.8.8 itp) Wiecej czytac mi sie nie chce, nie mam czasu xd
  16. yooniks

    Lista w configu

    Masz na czerwono messages - bo tam są dwie różne zmienne (tak samo nazwane), to byl tylko przyklad kodu. Config masz na czerwono bo wgl nie stworzyles takiej zmiennej, to mialobyc odwolanie do FileConfiguration z glownej klasy tak jak napisales, myslalem ze ogarniesz. Chyba jeszcze troche musisz podstaw sie pouczyc lub poogladaj jakies gotowe pluginy publiczne z dobrym kodem. public class TestCommand implements CommandExecutor { private final FileConfiguration config; public TestCommand(FileConfiguration config) { this.config = config; } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage("this command is executable only by player"); return true; } Player p = (Player) sender; //napisalem ze to ustawia w configu "messages" na jakies wiadomosci, nw po co to tu dales /*final List<String> messages = Arrays.asList("first message", "second message"); config.set("messages", messages);*/ final List<String> messages = config.getStringList("messages"); final String message = String.join("\n", messages); p.sendMessage(message); } } a w glownej klasie zrob po prostu cos w stylu public class TestPlugin extends JavaPlugin { @Override public void onEnable() { this.saveDefaultConfig(); final TestCommand testCommand = new TestCommand(this.getConfig()); this.getCommand("test").setExecutor(testCommand); } } config.yml ma wygladac tak: messages: - "first message" - "second message" a plugin.yml: #jakies inne typu main, author, version itp commands: test: aliases: [testcommand, testalias] description: "Test command"
  17. yooniks

    Lista w configu

    Jeżeli chodzi o zapisywanie listy do configu (i jej tworzenie), to po prostu tworzysz prosty key i value. //zapisywanie listy do configu final List<String> messages = Arrays.asList("first message", "second message"); config.set("messages", messages); //wysylanie listy do gracza //Player#sendMessage przyjmuje jako parametry String, czyli Liste z configu musisz sprowadzic do stringa, najlatwiej bedzie //przy uzyciu String.join final List<String> messages = config.getStringList("messages"); //pierwszy parametr to "delimiter" czyli w krotkim tlumaczeniu taki 'oddzielacz' wiadomosci, //zamiast \n (czyli nowej lini) mozesz uzyc np. przecinka final String message = String.join("\n", messages); //do gracza zostanie wyslana nastepujaca wiadomosc: /* first message second message */ player.sendMessage(message); zmienna config to po prostu FileConfiguration pobrane np. z twojej klasy glownej rozszerzoną o JavaPlugin - plugin.getConfig()
  18. yooniks

    MYSQL

    Skoro lobby jest pierwszym serwerem na który gracz będzie łączony to mysle ze bez problemu możesz prefix przekazać poprzez plugin messaging channel no ale mysql z tabela oddzielna to też bardzo dobry pomysł. No i ja osobiście wybralbym te drugie rozwiazanie jeżeli mysql to nie problem.
  19. Chodzi ci o jedną linijke czy co? Wywolanie komendy to jedna linijka.
  20. to po prostu zamień wykonywanie komendy nick na skriptowy kick? czyli kick player
  21. no takie sredniawe ;/ cała klasa dateutil nie jest twoja tylko z myhardow, tak trudno było zrobić fajny system przy uzyciu uuid, long? zamiast uuid jest string, nie można dać graczom kilku cooldownow, do tego klasa helper to ma być util a nie coś co trzyma dane o graczach;/ Niepotrzebne logi do konsoli, wystarczyłoby rzucac jakiś wyjatek (exception) a jakby ktoś chciał logować to do konsoli to lapal by wyjatek i sam to printowal, usuwasz cooldown w metodzie iscooldown, why?
  22. Nie można latać np. na huzuni, nie działa fastfall, nofall, longjump i pełno innych. Więc "nic nie blokuje" to przesada.
  23. kolega z moderacji chyba mało się zna jeżeli uważa że ten plugin nic nie blokuje Co do tematu: nic nie jest napisane o wersji serwera, silniku, wynagrodzeniu (no to chyba jedna z ważniejszych kwestii, ja bym od nowa nie pisał pluginu takiego za jakieś 30zl, chyba że gotowy plugin który już kilka serwerów używa)
  24. Jakbyś podał nazwy pluginow to łatwiej byłoby znaleźć o nich informacje, zobaczyłbym jak to wszystko działa i czy można zsumowac wszystkie postępy nawet mógłbym to zrobić w małym prostym pluginie który rejestrowalby placeholdera który właśnie wszystko to łączy, no ale tak to raczej nikt ci nie pomoże bo nie wróży z fusów
  25. Zero o pluginach itp. skąd mamy wiedzieć jak ci pomóc..
×
×
  • Dodaj nową pozycję...