Skocz do zawartości

yooniks

Użytkownik
  • Ilość zawartości

    987
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    13

Treść opublikowana przez yooniks

  1. jezeli chcesz zablokowac to tylko dlatego ze mozna lagowac serwer mechanizmami to tego nie rób, jest taki magiczny plugin jak fastasyncredstone i fastasyncworldedit. zamiast dzwigni mozna uzywac przyciskow, wagonow i duzo wiecej rzeczy - wiec blokowanie dzwigni nie ma sensu tymbardziej ze bedzie kilka graczy zamiast jednego na jedna dzwignie i juz masz 'obejscie' tego, lepiej optymalizowac mechanizmy niz je blokowac/ograniczac na czas
  2. eh, dalej popelniasz te same bledy, nic sie nie uczysz.. zacznijmy od tego ze edytujesz event na priorytecie monitor ;/ zamiast raz sobie sprawdzic czy h jest true to sprawdzasz to w petli ;/ czyli zamiast raz sprawdzic bedziesz to sprawdzal 100 razy jak bedzie 100 graczy, do tego zamiast wysylac wiadomosc do gracza robisz broadcast, czyli jak bedzie 100 graczy z permisja helpop.w to wyswietlisz 100 razy wiadomosc do wszystkich graczy, ponadto robisz return czyli konczysz cala petle i komende, a zwracajac false wyswietlasz poprawne uzycie komendy ;/ sp jest juz playerem, wiec po co sprawdzasz czy jest playerem jeszcze raz, juz na poczatku castujesz playera do sendera w zmiennej sp, wiec zawsze warunek 'sp instanceof Player' bedzie zwracal true, juz inaczej jakbys sprawdzal to poprzez samego commandsendera, a nie playera. a co do bledu z komendami to po prostu daj komendy do innej klasy i rejestruj je w onenable oddzielnie, bo pewnie rejestrujesz commandexecutora na jedna komende, a masz tam kilka.
  3. to juz jak wolisz, ale takie cos mozesz ladowac przy wejsciu gracza, a usuwac po jego wyjsciu - zeby tak bardzo nie obciazac serwera jak bedzie stal kilka dni bez restartu - bo wyobraz sobie ze przez kilka godzin wbije ok. tysiąc graczy, a i tak pozniej bedzie gralo tylko 100, wiec niepotrzebnie w pamieci trzymac te 900. A co do kodu to gotowca raczej nie dostaniesz, a jak tak bardzo chcesz to mozesz sobie zawsze zapozyczyc z innych projektow opensource np: https://github.com/whippytools/whippy-tools
  4. zacznijmy od tego czemu to jest statyczne ;/ i czemu brak adnotacji eventhandler nad metoda ;/ Czemu ludzie piszą o hashmapach zamiast mapach, przeciez hashmap implementuje po prostu interfejs map ;/ wiec jak macie na mysli mapy to piszcie mapy, a nie hashmapy, linkedmap itd. chyba za duzo kguildsow i kodu z wyciekow ;/ No co do samego tematu: uzywasz po prostu mapy, w kluczu trzymasz uuid gracza, a wartosc to integer. czyli np:' final Map<UUID, Integer> simpleMap = new HashMap<>(); //po prostu tworzysz sobie mapke, https://javastart.pl/baza-wiedzy/darmowy-kurs-java/klasy/interfejs-map /* ustawiasz wartosc w mapie dla uuid gracza na 1 | cos jak twoje statyczne x, tylko jest dla okreslonego klucza (w tym przypadku uuid gracza) */ simpleMap.put(player.getUniqueId(), 1); /* moze zwracac null jezeli gracz nie jest w mapie, aby temu zapobiec mozesz po prostu sprawdzac czy gracz jest w mapie poprzez containsKey "lub == null", lub uzywac Map#getOrDefault */ simpleMap.get(player.getUniqueId());
  5. sprobuj 'if length of arg-1 is longer than 16:' i zamiast '%colored arg% uzywaj '%coloured the 1st arg%'
  6. "JAKOS" - nie, nie zadziala, kolejna osoba ktora pisze glupoty https://code.skript.pl/JPrdzthW command /nazwa [<text>]: permission: SItems.Nazwa permission message: &7Nie posiadasz uprawnien do zmiany nazwy przedmiotu. trigger: if arg-1 is set: #dodane od if arg-1 is longer than 16 characters: send "ohoho, wiecej niz 16 znakow w nazwie! stop #dodane do set name of player's tool to "%colored arg%" send "&7Nowa nazwa przedmiotu %colored arg%" to player if arg 1 is not set: send "&7Poprawne uzycie &8/&7opis &8opis" command /opis [<text>]: permission: SItems.Nazwa permission message: &7Nie posiadasz uprawnien do zmiany opisu przedmiotu. aliases: lore trigger: if arg 1 is set: set lore of player's tool to "%colored arg%" send "&7Nowy opis przedmiotu %colored arg%" to player if arg 1 is not set: send "&7Poprawne uzycie &8/&7opis &8opis"
  7. każe, czy nie - wyrażam swoją opinię
  8. Ze strony kody wyglada bardzo brzydko, do tego uzywasz jakichś słabych API do GUI, i nie przechwytujesz wyjątków w odpowiedni sposób ;/ ja osobiście bym nie uzywal
  9. ja tu tylko napisze ze skrypt powinien nazywac sie broadcast, a nie brodcast i do tego zamiast loop all players masz w skrypcie takie magiczne cos jak send {_text} to all players, do tego: nie masz nigdzie options, wiec nie zadziala to tak samo nie zadziala, wszystko ejst zle serio, nie wiem po co wy takie tematy robicie, upubliczniacie skrypty skoro one nie dzialaja, takie tematy powinny byc karane, nie dosc ze spam z jakims niepotrzebnym skryptem ktory mozna napisac w kilka sekund to jest jeszcze zle napisany i NIC tu nie zadziala
  10. tak, a jak juz masz sprawdzac, bo np. robisz to w np. mainie i chcesz sprawdzac kilka komend to mozesz uzyc od razu parametru String -> label/commandlabel, a nie cmd.getName()
  11. tak, jezeli robisz cos typu: //javaplugin this.getCommand("simpleCommand").setExecutor(new ClassImplementingCommandExecutor());
  12. Masz od tego mapki, obiekty itd. Tak samo jak istnieje obiekt Player w bukkicie mozesz sobie zrobic obiekt SimpleUser i tam trzymac okreslone dane uzytkownika, a pozniej tylko je w jakis sposob ladowac. private final Map<UUID, String> simpleMap = new HashMap<>(); private void simpleMethod() { final UUID simpleUUID = UUID.randomUUID(); this.simpleMap.put(simpleUUID, "to jest jakas wartosc dla okreslonego klucza (uuid)!"); System.out.println("Klucz uuid: " + simpleUUID.toString() + " z mapki wynosi: " + this.simpleMap.get(simpleUUID)); } no ale tez nie ogarniesz wszystkiego od razu, wszystko przychodzi z czasem
  13. To moze powiedz co dokladniej chcesz zrobic ;/ Takie dane mozesz trzymac w obiekcie, np. 'SimpleUser' i tam trzymasz rozne dane, a w jakims managerze po prostu wrzucasz do mapki uuid tego gracza i obiekt, mozesz go pobierac itd. A jak chcesz to do pojedynczej rzeczy to mozesz uzyc map lub setów final Map<UUID, Boolean> simpleMap = new HashMap<>(); final Set<UUID> simpleSet = new HashSet<>(); https://javastart.pl/baza-wiedzy/darmowy-kurs-java/klasy/interfejs-map
  14. Nie wiem po co sie wypowiadacie i piszecie takie glupoty jak "sprobuje ci pomoc, ale napisz co jest zle" - skoro widac jasno: to tak jakbys wpisal: pex user yooniksgroup set vip - nie zadziala. poza tym permissionsex ma swoje api dla developerow ktorego mozesz uzyc, bez wykonywania komend z konsoli. do tego masz jeden boolean na wszystkich graczy, nie bedzie to dzialalo prawidlowo ;/ nazwy zmiennych z malej litery! "gracz/player"- nie "Gracz"! castujesz od razu playera do commandsendera, nawet nie sprawdzasz czy to jest gracz, a jak komende wykona konsola to zacznie sypac ci bledami i kod nie przejdzie dalej ;/ tak samo po co sprawdzasz nazwe komendy skoro to jasne, bo juz w onenable nadajesz komendzie okreslona nazwe, rejestrujac ja ;/ @edit do tego: zwracajac false informujesz bukkit'a, ze cos poszlo zle podczas wykonywania komendy i informujesz go ,ze ma wyswietlic poprawne uzycie. https://hub.spigotmc.org/javadocs/spigot/org/bukkit/command/CommandExecutor.html#onCommand(org.bukkit.command.CommandSender, org.bukkit.command.Command, java.lang.String, java.lang.String[])
  15. Lore to ma byc lista, czyli mozesz to zrobic cos w tym stylu: //1 meta.setLore(Arrays.asList("pierwsza linia", "drugia linia")); //2 final List<String> lore = Arrays.asList("pierwsza linia", "druga linia")); meta.setLore(lore); @edit @deusowy_yt tak.
  16. nie pytaj, tylko sproboj, mysle ze nie dziala ci bo robisz to podczas wylaczenia, sprobuj dac to w jakims tasku co kilka minut.
  17. + Main.ALL_JOINS
  18. tak, nazwa fielda, tam gdzie zmienilem ci kod:
  19. no i dobrze, tylko zamien: na: i uzywaj kodu z maina ktorego ci dalem
  20. i widzisz jak ci pomieszal ten idiota w glowie ;/ package me.neroos.join; import org.bukkit.plugin.java.JavaPlugin; import me.neroos.join.listeners.PlayerJoinListener; public class Main extends JavaPlugin { public static int ALL_JOINS = 0; @Override public void onEnable() { this.getServer().getPluginManager().registerEvents(new PlayerJoinListener(), this); this.saveDefaultConfig(); ALL_JOINS = this.getConfig().getInt("WszystkichLogowan", 0); } @Override public void onDisable() { this.getConfig().set("WszystkichLogowan", ALL_JOINS); this.reloadConfig(); } } i pokaz jeszcze listenera
  21. bo moze kazdy ocenia moj stary kod, i do tego moze jestem gowniany, ale z kazdym dniem sie czegos ucze no, a ty wyskakujesz z 10x bardziej gownianym kodem, wiec nie wiem czemu mi piszesz 'ze robie gowniany kod', kto tu jest robakiem skoro ja probuje pomagac, daje dobre rady, dobry kod, a ty wyskakujesz zeby tylko nabic posty, kod byle jaki, chocby tylko dzialal, chuj cie obchodzi to ze wbije 10 botow w sekunde i zlaguje mu serwer bo oczywiscie zapisujesz config w glownym watku serwera i to do tego przy kazdym dolaczeniu gracza. czy ja gdzies pisze ze jestem niewiadomo jak dobry? jak dla mnie duzo umiem jak na swoj wiek i kilka miesiecy nauki, kazdy sie caly czas czegos uczy = ) nie rób tak jak ten rak ci pisze, bo on dal ci kod 'aby tylko dzialalo' no i do tego probuje tworzyc fieldy w ciale metody - ciekawe jak = ) Po prostu w onenable rob this.saveDefaultConfig() i do jakiegos int'a przypisuj wartosc z configu, a przy wejsciu kazdego gracza powiekszaj tą wartosc o jeden, nic nie zapisuj itd. i dopiero w onDisable ustawiaj wartosc w configu na tą z fielda i zapisuj config. a gotowca ci nie dam, bo musisz sam sie w koncu nauczyc
  22. kurde prosze nie wypowiadaj sie skoro uczysz sie kilka tygodni, a moze nawet nie i myslisz ze jestes jakims bogiem, zwracasz uwage na szczegoly ktore prawie na nic nie wplywaja i ktore z czasem sam poprawi, a o tym ze uzywa obiektowego Integer juz nie wspomniales = ) co? fieldy w ciale metody? pierwsze slysze, do tego tworzenie instancji klasy main? porazka. i ty mnie jeszcze na jakims discordzie wyzywales jak masz juz dawac taki kod i porady to sie lepiej nie wypowiadaj ;/ @edit no i jak to ma niby dzialac, co? to tak jakbym se zrobil private int getSomeInt() { return 1; } public void stupidFun() { this.getSomeInt(); //no i niby co mi to daje, co? } no ten twoj kod to porazka i nic wiecej, jak masz juz cos dawac to prosze ,dzialajace. zamiast pobierac caly czas playera z eventu mozesz raz go sobie zapisac do zmiennej i uzywac, a zapisales do zmiennej i nawet nie uzywasz, do tego przy kazdym dolaczeniu gracza zapisujesz config i wrzucasz do niego rozne wartosci, wiesz ze takie cos trwa, tymbardziej jak plik jest duzy?
  23. JavaPlugin#getConfig().set("all-login-amount", amount++); @edit wywalilo mi polowe odpowiedzi ;/ to /\ dodaj przy wylaczaniu pluginu, lub przy zmienianiu wartosci fielda, lub w jakims tasku co kilka minut/sekund - tylko po prostu zeby sie gdzies zapisywalo do pliku, bo bedzie ci to potrzebne, a w onenable po prostu ustawiaj wartosc fielda na ta z configu, czyli: this.getConfig().getInt("all-login-amount", 0);
  24. jak juz to final i StringUtils.replace, bo te ze stringa jest wolne Obydwie formy są poprawne
  25. yooniks

    xyz

    portfolio?
×
×
  • Dodaj nową pozycję...