-
Ilość zawartości
987 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
13
Treść opublikowana przez yooniks
-
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
-
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
-
[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
-
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?
-
Sprawdzanie czy w pobliżu nie ma regionu
yooniks odpowiedział(a) na Szwagru pytanie w Pytania i problemy
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 -
Jak zrobic ze jak wklei sie schematic to sie po 30s usuwa
yooniks odpowiedział(a) na WybuCh_bomby pytanie w Pytania i problemy
Wykonaj metode undo obiekcie EditSession -
Jak zrobic ze jak wklei sie schematic to sie po 30s usuwa
yooniks odpowiedział(a) na WybuCh_bomby pytanie w Pytania i problemy
Skoro możesz zrobić paste to możesz i undo ;v dokumentacja worldedita plugin;( -
Podejmę współpracę z średnim/większym serwerem.
yooniks odpowiedział(a) na Centurion temat w Archiwum współpracy
Co ty wgl napisałeś xD? Na co ty teraz odpisałeś? Może w niedzielę będę miał czas to się pobawie -
Podejmę współpracę z średnim/większym serwerem.
yooniks odpowiedział(a) na Centurion temat w Archiwum współpracy
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 -
zostanę Programista na zlecenie! [4 lata doświadczenia]
yooniks odpowiedział(a) na yooniks temat w Archiwum współpracy
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ć- 28 odpowiedzi
-
- programista
- developer
-
(i 2 więcej)
Oznaczone tagami:
-
Podejmę współpracę z średnim/większym serwerem.
yooniks odpowiedział(a) na Centurion temat w Archiwum współpracy
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 -
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.
-
Załaduj konfiguracje a potem zapisz ja w pliku.
-
final File languages = new File (plugin.getDataFolder(), "languages"); languages.mkdir(); zrób zamiast twojego lang1
-
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
-
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"
-
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()
-
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.
-
Chodzi ci o jedną linijke czy co? Wywolanie komendy to jedna linijka.
-
Plugin na kick i piorun po śmierci gracza
yooniks odpowiedział(a) na Toori6666 pytanie w Pytania i problemy
to po prostu zamień wykonywanie komendy nick na skriptowy kick? czyli kick player -
CooldownHelper - Klasa pomagająca w tworzeniu czasu oczekiwania
yooniks odpowiedział(a) na JanekMaSkrypta_ temat w Poradniki
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? -
AntyCheat na server SV + Gildie 1.8 [płatne]
yooniks odpowiedział(a) na 123421421 pytanie w Pytania i problemy
Nie można latać np. na huzuni, nie działa fastfall, nofall, longjump i pełno innych. Więc "nic nie blokuje" to przesada. -
AntyCheat na server SV + Gildie 1.8 [płatne]
yooniks odpowiedział(a) na 123421421 pytanie w Pytania i problemy
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) -
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
-
Zero o pluginach itp. skąd mamy wiedzieć jak ci pomóc..
