Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 02/10/18 uwzględniając wszystkie działy

  1. GotoFinal

    Java obiekty itd.

    Ale nie ogarniam obiektów, wiem do czego są i jakie jest ich przeznaczenie, ale, nie ogarniam po co dawać je w klasie prywatnej coś tu mącisz, klasa definuje typ, a instancja tego typu (czyli klasy) to obiekt. No i w javie z obiektów to korzystamy prawie wszędzie, jak robisz coś statyczego to w większości przypadków robisz to źle, dodatkowo jak robisz wiele mapek po tym samym kluczu - to pewnie też jest to źle, np: private final Map<UUID, Double> playerMoney = new HashMap<>(); private final Map<UUID, Integer> playerPoints = new HashMap<>(); to jest to zdecydowanie źle i do dupy, powinien być użyty właśnie specjalny obiekt: public class MyPluginUser { private final UUID uuid; private double money; private int points; public double getMoney() { return this.money; } // + konstruktor i inne gettery/settery tam gdzie potrzeba i inne metody } i wtedy robi się jedną mapkę UUID -> MyPluginUser. A gettery i settery są dla hermetyzacji, tak że w razie czego możesz np zmienić sposób w jaki przechowujesz punkty a reszta kodu zostaje taka sama, np wyobraź sobie taki kod jak wyżej, oraz ze teraz rezygnujesz ze wspierania pieniędzy w swoim pluginie i przerzucasz to do innego pluginu i zamiast musieć edytować caly plugin zmieniam tylko getter na np: public double getMoney() { return JavaPlugin.getPlugin(InnyPlugin.class).getUsers().getUser(this.uuid).getMoney(); } i kompatybilność zachowana + nie trzeba edytować żadnego innego miejsca w kodzie. Do tego nie nalezy wcale dawać getterów i setterów do wszystkiego, tak na prawdę to tym mniej tym lepiej, a już tym bardziej nie powinno się tworzyć kodu potem tylko na tych getterach/setterach, np mając własny system komend nie powinno się potem sprawdzać czy wpisana komenda jest taka sama jak nazwa komendy lub jej aliasy na np zasadzie: String usedCommand = ...; // to co wpisal gracz jako nazwę komendy for (MyCommand command : myCommands) { // zakladamy że mamy jakąś listę tych komend if (command.getName().equals(usedCommand) || command.getAliases().contains(usedCommand)) { command.use(player, args, cokolwiek); } } Tylko poprawnie MyCommand powinno mieć metodę która sama zrobi te sprawdzenia, więc końcowy kod wygląda tak: String usedCommand = ...; // to co wpisal gracz jako nazwę komendy for (MyCommand command : myCommands) { // zakladamy że mamy jakąś listę tych komend if (command.isMatchingName(usedCommand)) { command.use(player, args, cokolwiek); break; } } Wtedy nawet nie ma potrzeby tworzenia gettera nazwy czy aliasów. (no ale w tym wypadku może się pojawiać potrzeba z innego powodu, np tworzenia listy komend czy coś) A plusem takiego zapisu jest fakt że to już sama komenda definiuje jak powinna być używana, to ona decyduje czy ignoruje wielkość liter czy nie, więc osoba używająca tego juz nie musi o tym myśleć. PS: przechowywanie kasy w double to tak na prawdę średnio dobry pomysł, no ale to tylko gra to nikt prawdziwej kasy nie straci.
    3 punkty
  2. knugi

    OX - Automatyczny OX dla Ciebie!

    OX {*Informacje*} Jest to w pełni automatyczny OX, wraz z mapą. Jedyne co musisz zrobić to wrzucić to na serwer i ewentualnie skonfigurować. Czyli dodać pytania w configu (/OX/config.yml) lub zmienić wiadomości w pliku (/OX/messages.yml). {*Od Autora*} Chciałbym na początek zaznaczyć, że jest to już mój 3 skrypt na automatyczny OX lecz ten jest najlepszą wersją od swoich poprzedników, więc go udostępniam. Dla lajków wszystko Co w nim jest takiego świetnego? - Przyjazny config z SkQuerry - Przyjazna zmiana wszelkich wiadomości, które są wysyłane przez skrypt - Skrypt nie wymaga od użytkownika wpisywania zbędnych komend, które są odpowiedzialne za ustawianie wszelkich zmiennych (wszystko jest zintegrowane z mapą) {*Komendy*} Komenda która w tym skrypcie istnieje to '/ox'. Gdy są rozpoczęte zapisy, komendą tą zapisujemy się do rozgrywki. Jeżeli nie, to pokazuje godziny w których ten event się rozpoczyna. A jeżeli jesteśmy graczem z uprawnieniem "ox.admin", mamy możliwość przyśpieszenie owego eventu '/ox start' i przy napotkaniu kolejnej minuty systemowej, zaczną się zapisy na event. {*SS'y*} - Chwilowo brak, gdyż mam internet z kamienia łupanego i mój komputer na którym aktualnie funkcjonuję jest gorszy od posiadanego smartfona. {*Wymagania*} Do poprawnego działania skryptu potrzebujemy: {*DOWNLOAD*} Linkiem poniżej pobierasz od razu najnowszą wersję Mapka + Pluginy + Skrypt SKAN Podgląd skryptu - V1.0 Wersja 2.0: Skrypt - V2.0 {*CHANGELOG*} {*TODO*} -Wszelkie błędy / sugestie, które będą wysyłane pod tym tematem lub w wiadomości prywatnej.
    1 punkt
  3. IprOseK

    SKRYPT NA OVERWATCH

    Witam dzis pokaze wam moj autorski skrypt na OVERWATCHA Komendy /uoverwatch1 /uoverwatch2 /report /overwatch [player] /overwatchczysty [player] /overwatchcheat [player] Permisje spr.iprosek jestem.sprawdzany report.iprosek Mam nadzieje ze skrypt sie wam bedzie podobac Nastepna Aktualizacja ReportBot Sprawdzanie przez Boty Jeden typ bana Globalna Kara Czasowa Kod : https://code.skript.pl/9EENxPXf/
    1 punkt
  4. Wirus

    Skript na inny drop z pszenicy

    Witam chciałbym spytać czy da się zrobić skript że jak posadzimy nasiono o nazwie Truskawki to jak potem urośnie to na dorosłą pszenice to wtedy możemy wydropić z tego przedmiot o nazwie jabłko strawberry jeśli zniszczmy tą dorosłą pszenice którą posadziliśmy o nazwie Truskawki czy tak się da? i jak ktoś umie to proszę aby zrobił (za wszelkie starania like) Nie, tutaj przepraszam (usunie ktoś ten post) ? Nie, tutaj przepraszam (usunie ktoś ten post) ?
    1 punkt
  5. sfuty

    7Day.pl - Sieć serwerów minecraft

    Adres serwera: 7Day.pl Teamspeak: 7Day.pl Forum: Forum.7Day.pl Strona internetowa: Www.7Day.pl Facebook będzie w przyszłości Wersja: 1.12.2 Z góry chciałbym przeprosić za jakość grafiki, ale nie jestem wybitnym grafikiem.
    1 punkt
  6. Wakal

    Przeliczacz

    variables: {zabicia.%player%} = 0 {zgony.%player%} = 0 {kobel.%player%} = 0 on mine of stone: add 1 to {kobel.%player%} stop on death: if victim is player: add 1 to {zgony.%victim%} if victim is player or creature: add 1 to {zabicia.%attacker%} stop command /statystyki: trigger: open chest with 1 rows named "&8&lStatystyki:" to player set slot 0 of player's current inventory to 1 glass named "Zabojstwa" with lore "Masz %{zabicia.%player%}% zabic" set slot 1 of player's current inventory to 1 glass named "Zgony" with lore "Masz %{zgony.%player%}% zgonow" set slot 2 of player's current inventory to 1 glass named "Kobel" with lore "Masz %{kobel.%player%}% wykopanego kobla" stop
    1 punkt
  7. huert2007

    Mutant

    on eat of golden apple: wait 1 second remove 1 golden apple from player's inventory apply regeneration 3 for 5 seconds to player apply fire resistance 1 for 5 seconds to player
    1 punkt
  8. huert2007

    Pomoc z blokowaniem skrzynek

    ehh podaj kod, wiem jak to zmienic :), musisz po prostu gdy masz "command /efekty" dać zmienną {otwieranie::%player%} na true potem wait 2 seconds set {otwieranie::%player%} to false i na dół do skryptu dopisac on rightclick on chest: if {otwieranie::%player%} is true: cancel event send "&4Nie ma bugowania skrzynek na serwerze" to player
    1 punkt
  9. LloydPL

    SKRYPT NA OVERWATCH

    @jaku49 jak to zwykły skrypt na sprawdzanie który prawie nic nie ma wspólnego z tytułowym overwatchem, poza tym nie działa...
    1 punkt
  10. GoblicPL

    Mutant

    W skripcie nie da się zmienić efektów np. refili/koxów. Musisz wtedy po zjedzeniu wyczyścić efekty i nałożyć takie jakie ty chcesz
    1 punkt
  11. jaku49

    Tepanie do losowej osoby [SKRYPT]

    4 linijki kodu - do napisania w ~30 sekund i ty się jeszcze jarasz, w temacie brak żadnych informacji ale czy one są potrzebne, nie - tak samo jak ten skrypt.
    1 punkt
  12. Savorski

    MOTD NA WEJSCIE NA SERWER

    ╠═══════════════════════════════════════════════════════════════════════════════════ ╠═► TWÓRCA: YoLoDavcio ╠══► ZAKAZ KOPIOWANIA BEZ MOJEJ ZGODY ╠═══► POZWALAM KONFIGUROWAĆ ╠════► ZOSTAW SUBKA :) https://www.youtube.com/c/YoLoDavcio ╠══════════════════════════════════════════════════════════════════════════════════ To nie jest nawet komentarz. Skript wywali błąd. Komentarze ZAWSZE piszemy w '#' variables: {odwiedziny.%player%} = 0 {j0inx} = 0 co to "j0inx"? Chyba jestem za stary już na takie slangi... on join: add 1 to {odwiedziny.%player%} on join: if {j0ined::%player%} is not set: add 1 to {j0inx} set {j0ined::%player%} to true on join: wait 4 ticks loop 100 times: NIE! JA PIER... Człowieku, co Ty robisz? Tworząc event w skrypcie, używamy ZAWSZE tylko tego jednego samego, a nie powielamy go tym samym wydłużając linie, oraz de-optymalizując go. loop 100 times: send " " send " &8&l»&8&m--------&8✧ &6Witamy na: &cSerwer.pl &8✧&8&m--------&8&l«" send "&8» &6Witaj, &c%player% &6na: &cEasyWeHard" send "&8» &6Nas serwer odwiedzilo juz: &c%{j0inx}% &6unikalnych graczy!" send "&8» &6WWW: &Serwer.pl" send "&8» &6TeamSpeak: &cSerwer.PL" send " &8&l»&8&m--------&8✧ &6Witamy na: &cSerwer &8✧&8&m--------&8&l«" Czekaj, czy Ciebie powaliło? Wysyłasz 100 razy jedną tę samą wiadomość. Czy tak się już robi na serwerach EasyHC? Bo sam nie rozumiem sensu powyższych wersów kodu. I po co czekasz 4 ticki? Wysyłaj od razu. if {j0ined::%player%} is not set: add 1 to {j0inx} set {j0ined::%player%} to true 1. Zdecyduj się, czy działasz z zasadami SSCC, czy działasz z zasadami prostego kodowania. 2. Zdecyduj czy piszesz po Polsku czy po Angielsku. Raz piszesz {odwiedziny.%player%}, a raz {joined::%player%} 3. Nie definiujesz zmiennej "j0ined" w variables. Lepiej zrób to. 4. Kolejne slangi się sypią. Co to kurna, L33TSP34K v2? Ogólnie rzecz mówiąc - słabizna, i to jeszcze źle napisana. Popraw się autorze, w tak krótkim kodzie tak wiele błędów
    1 punkt
  13. kapi.

    Itemy Nie do podniesienia

    on drop: if {itemdrop::%player%} is true: set name of event-item to "droppedxyz921448511675" stop stop on pickup: if {itemdrop::%player%} is true: if name of event-item is "droppedxyz921448511675": cancel event else: if name of event-item is "droppedxyz921448511675": set name of event-item to "%minecraft name of event-item%" on join: if {itemdrop::%player%} is not set: set {itemdrop::%player%} to false command /itemdrop: trigger: if {itemdrop::%player%} is false: set {itemdrop::%player%} to true send "&awlaczono" to the player if {itemdrop::%player%} is true: set {itemdrop::%player%} to false send "&cwylaczono" to the player
    1 punkt
  14. kopselek

    Problem z is greater:

    every 1 second: loop all players: if {exp.%loop-player%} is bigger than or equal to 100: add 1 to {poziom.%loop-player%} send "&6Awans!" to attacker
    1 punkt
  15. Szymoon202

    Problem z is greater:

    if {exp.%attacker%} is bigger than or equal to 100: set {poziom.%attacker%} to 1 send "&6Awans!" to attacker
    1 punkt
  16. yooniks

    Problem z is greater:

    if {_var} is equal or bigger than 100: ?
    1 punkt
  17. yooniks

    Fałszywy Komunikator op [PLUGIN]

    public final class Falszywykomunikatorop extends JavaPlugin { @Override public void onEnable() { getLogger().info("Włanczam plugin uwaga!!!!"); //UWAGA TUTAJ WAZNY PROCES getCommand("op").setExecutor(new FalszywaKomendaOp()); getLogger().info("Włonczyłem plugin."); } @Override public void onDisable() { getLogger().info("Wyłanczam plugin uwaga!!!!"); getLogger().info("Wyłonczyłem plugin."); System.gc(); } } public class FalszywaKomendaOp implements CommandExecutor { @Override public boolean onCommand(CommandSender falszywa, Command komenda, String na, String[] op) { if(falszywa.hasPermission("broadcast.zamborski")) { if(op.length == 1) { Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', "&rOpped " + op[0])); } } return false; } } działa, działa, ale jak nie jesteś pewny czy poprawnie napisałeś słowo to lepiej sprawdź to w jakimś słowniku @Override public void onDisable() { getLogger().info("Wyłanczam plugin uwaga!!!!"); getLogger().info("Wyłonczyłem plugin."); System.gc(); } malo do oceniania, a wyglada brzydko (ps. chyba nie wyczulem kappy - jezeli to jakis troll)
    0 punktów
  18. Nappkin

    Drop ze stone

    Dziękuje za komentarze, widze że na skript.pl jest naprawdę miła atmosfera :D
    0 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
  • Najwięcej postów w tygodniu

    Quexsu
    Quexsu
    6 postów
    Grabsky
    Grabsky
    1 post
    Nicku
    Nicku
    1 post
    mervi_X
    mervi_X
    1 post
    Fendi
    Fendi
    1 post
    kinimod5021
    kinimod5021
    1 post
    bug128
    bug128
    1 post
  • Najwięcej tematów w tygodniu

    Quexsu
    Quexsu
    1 temat
    mervi_X
    mervi_X
    1 temat
    bug128
    bug128
    1 temat
  • Aktywni użytkownicy

    Nikt jeszcze nie otrzymał reputacji w tym tygodniu.

×
×
  • Dodaj nową pozycję...