Ranking
Popularna zawartość
Treść z najwyższą reputacją w 02/10/18 uwzględniając wszystkie działy
-
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
-
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
-
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
-
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
-
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
-
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" stop1 punkt
-
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 player1 punkt
-
@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
-
Tepanie do losowej osoby [SKRYPT]
TheDarkRexYT przyznał(a) reputację jaku49 za temat
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 -
╠═══════════════════════════════════════════════════════════════════════════════════ ╠═► 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ów1 punkt
-
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 player1 punkt
-
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 attacker1 punkt
-
Problem z is greater:
MisiolPl przyznał(a) reputację Szymoon202 za pytanie
if {exp.%attacker%} is bigger than or equal to 100: set {poziom.%attacker%} to 1 send "&6Awans!" to attacker1 punkt -
if {_var} is equal or bigger than 100: ?1 punkt
-
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
-
Dziękuje za komentarze, widze że na skript.pl jest naprawdę miła atmosfera :D0 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
-
Najwięcej postów w tygodniu
-
Najwięcej tematów w tygodniu
-
Aktywni użytkownicy
Nikt jeszcze nie otrzymał reputacji w tym tygodniu.
