opkarol 29 Opublikowano 30 marca 2021 Udostępnij Opublikowano 30 marca 2021 Witaj czytelniku, piszę o to ten Innowacyjny i Nowy plugin na chat, aby zaspokoić potrzeby dzisiejszych serwerów, plugin jest w wersji beta, Link: https://www.spigotmc.org/resources/90738/ O pluginie: Plugin jest napisany w sposób dzięki któremu, nie wpływa na wydajnośc serwera, dzięki czemu jest warty użycia już na samym wstępie. OpChat oferuję funkcję i możliwośc które do tego czasu oferowały pluginy, podczas gdy, żaden plugin nie ma tego wszystkiego łącznie. (Skopiowałem tylko pomysł na funkcję a nie kod). OpChat do działania wymaga Vault. Funkcje: Auto wiadomości: dzięki którym gracze na serwerze dostaną informację tego, co tam wstawisz, opcja ta jest w 100% zmienialna ze strony serwera autoMessages: interval: 100 messages: - 'This is a message1' - 'This is a message2' - 'This is a message3' Przydatne komendy: Komenda /chat: jest ona główną komendą sterującą plugin, dzięki niej możemy dostać informację na temat konfiguracji pluginu /chat help, możemy przeładować plugin /chat reload, ale także manipulować chatem, poprzez czysczenie, wyłączanie i włączanie go. Wszystkie wiadomości są zmienialne w configu! Komenda /me: jest to komenda która ma na celu podkreślenie wiadomości, może być także używana dla serwerów RP, w pełni zmienialna Komenda /helpop: ma na celu zwiększenie komunikacji gracza z administracją, dzięki niej gracz może napisać daną rzecz nie do każdego admina osobno przez prywatną wiadomość, lecz do całej administracji online, w pełni zmienialna Komenda /broadcast: jest to komenda która ma wiele funkcji, może służyć jako ogłaszator eventów, zapowiedzi ale także innych serwerowych spraw Customowe wiadomości: plugin oferuje zmianę wiadomości wchodzenia i wychodzenia na serwer poprzez grupy które są połączone z pluginem Vault. Także oferuje zmianę wiadomości chatu dla grup, np: System prywatnych wiadomości: pomysł wzięty z pluginu essentials, ma on na celu zwiększenie prywatności gracza posród innych graczy na serwerze. Zawiera on funkcję takie jak: /msg czyli pisanie do danej osoby /reply czyli odpowiadanie ostatnio pisanej osobie /ignore czyli blokowanie danego gracza aby nie mógł pisać do ciebie wiadomości /spy podglądanie wiadomości Wszystkie wiadomości są zmienialne. Czat Administracyjny: Często administracja zmuszona jest pisać na helpopie, co jest dość niekomfortowym sposobem, w celu uniknięcia tego dodałem do pluginu prosty chat administracyjny: główną komendą tego chatu jest /adminchat, możemy tutaj podać swoją wiadomość (jeśli mamy permisje itd) albo zmienić tryb admin chatu(toggle), jest to funkcja która pomaga administratorom, którzy nie umieją pisać w 1 zdaniu, dzięki czemu wystarczy, że wpiszą tą komendę nie musi już więcej obawiać się o wpisywanie /adminchat (lub /ac) no chyba, że znowu wpisze tą komendę Opóżnienie chatu: funkcja ta ma na celu zapobiegania graczom możliwości spamowania wiadomościami, można ustawić wiadomości i wartości dot. blokowania w configu delayChat: enabled: true inSeconds: 3 delayChatWarn: '&8» &cYou can write every &f&l%secondsDelayChat% &cseconds!' Systemy: System anty powtarzania tej samej wiadomości (Parrot): Blokuje on wiadomości które były poprzednio napisane, oznacza to, że gracz nie będzie mógł napisać w przeciągu określonego czasu takiej samej wiadomości System blokowania dużych liter: ten system dobrze zapobiega osobom które zapomniały wyłączyć CAPS LOCKA, no albo poprostu się zraegowały System Emoji: Czy zastanawiałeś się jak ładny może być chat kiedy dodasz do niego emoji? teraz już tak może być Więcej informacji będzie na mojej stronie wiki (githubie) System Poprawnego zdania: Wiele osób nie umie poprostu dodawać kropki na koniec zdania albo zaczynać zdania z dużej litery, to już nie problem! (Wszystkie te opcje da się zmieniać, nawet je wyłączyć) Party: Głównym celem podczas dodawania tego systemu, było łączenie graczy w grupkach kilku osobowych a nie jak dotychczas, że wszyscy gracze komunikowali się przez prywatne wiadomości. Party, jest w celu tylko i wyłącznie komunikacyjnym, nie dodaje ono możliwości teleportowania siebie, ani nic takiego. Główną a zarazem jedyną komendą jest /party posiada ona wiele subkomend takich jak: - create - czyli tworzenie własnego party - invite - pozwala na zaproszenie gracza do party - leader - przekazuje komuś innemu (z party) lidera - kick - wyrzuca gracza z party (jeśli jesteś liderem) - members - pokazuje nazwę party, lidera i listę graczy - leave - opuszcza party - toggle - zmienia tryb chatu dla siebie - accept - akceptuje zaproszenie do party Wszystkie informacje są zapisywane do pliku party.yml Mam zamiar dodawać jeszcze funkcję i ulepszać istniejące! Link: github dla "prograjmerów" Cytuj Odnośnik do komentarza https://skript.pl/temat/47508-plugin-opchat-download-ju%C5%BC-jest/ Udostępnij na innych stronach Więcej opcji udostępniania...
paweU 64 Opublikowano 30 marca 2021 Udostępnij Opublikowano 30 marca 2021 Od razu zaznaczę, że to nie jest ofensywna wypowiedź, a po prostu moja opinia. (zaznaczam to, ponieważ jak na discordach próbuje podpowiadać ludziom to mnie wyzywają i mówią "tak, to pokaż coś swojego kozaku. Wiem lepiej niż ty" itp. XD 1. Staraj się robić zmienne zamiast co chwila robić np. event.getPlayer() (mówię tutaj np. o klasie ChatDelay) 2. Nie podoba mi się również nazewnictwo klas np. w package "listeners". Warto żeby listenery były nazywane w stylu "PlayerInteractListener", "InventoryClickListener" itp. itd. 3. Zastanawia mnie też jak to się stało, że w package "listeners" jest klasa w której implementujesz Listener oraz CommandExecutor, podziel to sobie ładnie na klasy i rób to w odpowiednich package'ach. 4. W package "commands" też dziwnie nazywasz klasy. Raz nazywasz klasę "Broadcast" a raz "MeCommand". Warto, żeby wszystkie wyglądały podobnie a najlepiej właśnie w stylu "BroadcastCommand", "HelpopCommand" itp. itd. 5. Dobrze by było jakbyś zrobił sobie package "config" lub "configs" i tam wrzucił klasę "MessagesFile" a potem nazwal ją np. "MessagesConfig" To tak na pierwszy rzut oka, nie skupiałem bardzo uwagi na jakość kodu, ale jest czytelnie. Pozdrawiam, w razie odezwij się do mnie na discordzie: PAWEU#1513 ChlebekPlayer i opkarol 1 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/47508-plugin-opchat-download-ju%C5%BC-jest/#findComment-297841 Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Usunięty#3468 Opublikowano 30 marca 2021 Udostępnij Opublikowano 30 marca 2021 (edytowane) public class PluginController implements Listener { public static Chat chat = null; public PluginController(OpChat opChat) { initalize(); } package me.opkarol.opchat.utils; public class BukkitUtils { } to albo jest skopiowane i nieudolnie przepisane albo nie widziales co robisz Edytowane 30 marca 2021 przez Sewer Cytuj Odnośnik do komentarza https://skript.pl/temat/47508-plugin-opchat-download-ju%C5%BC-jest/#findComment-297853 Udostępnij na innych stronach Więcej opcji udostępniania...
opkarol 29 Opublikowano 30 marca 2021 Autor Udostępnij Opublikowano 30 marca 2021 26 minut temu, Sewer napisał: public class PluginController implements Listener { public static Chat chat = null; public PluginController(OpChat opChat) { initalize(); } package me.opkarol.opchat.utils; public class BukkitUtils { } to albo jest skopiowane i nieudolnie przepisane albo nie widziales co robisz 26 minut temu, Sewer napisał: public class PluginController implements Listener { public static Chat chat = null; public PluginController(OpChat opChat) { initalize(); } package me.opkarol.opchat.utils; public class BukkitUtils { } to albo jest skopiowane i nieudolnie przepisane albo nie widziales co robisz 1. Co tu jest niby złego 2. Miałem dodać do tej klasy metody które usprawniały by pewne funkcję, ale zapomniałem o nich bo zrobiłem inaczej Cytuj Odnośnik do komentarza https://skript.pl/temat/47508-plugin-opchat-download-ju%C5%BC-jest/#findComment-297863 Udostępnij na innych stronach Więcej opcji udostępniania...
paweU 64 Opublikowano 31 marca 2021 Udostępnij Opublikowano 31 marca 2021 10 godzin temu, opkarol napisał: 1. Co tu jest niby złego 2. Miałem dodać do tej klasy metody które usprawniały by pewne funkcję, ale zapomniałem o nich bo zrobiłem inaczej Radzę abyś dobrze sprawdzał kod pluginów, które publikujesz oraz ogólnie wszystkie klasy po kolei sobie przescrollował od góry do dołu i od dołu do góry. Jeśli uznasz plugin za gotowy, a będziesz miał w niektórych klasach jakieś nieużywane funkcje lub po prostu puste to po prostu je usuń. Niestety, ale teraz to wygląda w ten sposób, że nawet jeżeli zostawiasz jakieś puste funkcje lub nieużywane to jest duże prawdopodobieństwo, że zostaniesz przez kogoś oskarżony o "nieudolne kopiowanie kodu" itp. Rób to po prostu dla siebie, żeby nikt Cię nie obgadywał na discordach i nie mówił rzeczy w stylu "ThisKarolGajda to jakiś pseudziak, kopiuje kod nieudolnie, zostawia puste funkcje jakieś.. przecież to od razu widać, że coś tam namieszał". Dodatkowo zmniejszysz wagę pluginu. Jeśli szykujesz już jakiś kolejny projekt i planujesz go opublikować to odezwij się do mnie proszę na discordzie i tam może będę potrafił coś doradzić i wyłapie jakieś niedociągnięcia, żeby potem nie było właśnie takich sytuacji jak tutaj. Discord: PAWEU#1513 Pozdrawiam opkarol 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/47508-plugin-opchat-download-ju%C5%BC-jest/#findComment-297996 Udostępnij na innych stronach Więcej opcji udostępniania...
opkarol 29 Opublikowano 31 marca 2021 Autor Udostępnij Opublikowano 31 marca 2021 3 godziny temu, paweU napisał: Radzę abyś dobrze sprawdzał kod pluginów, które publikujesz oraz ogólnie wszystkie klasy po kolei sobie przescrollował od góry do dołu i od dołu do góry. Jeśli uznasz plugin za gotowy, a będziesz miał w niektórych klasach jakieś nieużywane funkcje lub po prostu puste to po prostu je usuń. Niestety, ale teraz to wygląda w ten sposób, że nawet jeżeli zostawiasz jakieś puste funkcje lub nieużywane to jest duże prawdopodobieństwo, że zostaniesz przez kogoś oskarżony o "nieudolne kopiowanie kodu" itp. Rób to po prostu dla siebie, żeby nikt Cię nie obgadywał na discordach i nie mówił rzeczy w stylu "ThisKarolGajda to jakiś pseudziak, kopiuje kod nieudolnie, zostawia puste funkcje jakieś.. przecież to od razu widać, że coś tam namieszał". Dodatkowo zmniejszysz wagę pluginu. Jeśli szykujesz już jakiś kolejny projekt i planujesz go opublikować to odezwij się do mnie proszę na discordzie i tam może będę potrafił coś doradzić i wyłapie jakieś niedociągnięcia, żeby potem nie było właśnie takich sytuacji jak tutaj. Discord: PAWEU#1513 Pozdrawiam Znaczy ja ogólnie mam osoby gdzieś a takie to szczególnie Cytuj Odnośnik do komentarza https://skript.pl/temat/47508-plugin-opchat-download-ju%C5%BC-jest/#findComment-298064 Udostępnij na innych stronach Więcej opcji udostępniania...
kerpson 551 Opublikowano 2 kwietnia 2021 Udostępnij Opublikowano 2 kwietnia 2021 Krytyka jest bardzo potrzebna w takich projektach. Tak naprawdę to dzięki niej ktoś może się wiele nauczyć. if (sender != null) { to nie będzie nullem i tak czy siak, co najwyżej sender będzie albo graczem albo konsolą for (int i = 0; i < 101; ++i) { for (Player p2 : Bukkit.getOnlinePlayers()) { p2.sendMessage(" "); } } 100x pobierasz każdego gracza po kolei i wysyłasz mu wiadomośc, zamiast stworzyć sobie w konstruktorze klasy jakiś StringBuilder i tylko go wysyłać #przykład private final StringBuilder emptyMessage = new StringBuilder(); public JakasKlasa() { for (int i = 0; i < 101; i++) { emptyMessage.append(" \n"); } #gdzieś przy czyszczeniu for (Player player : Bukkit.getOnlinePlayers()) { player.sendMessage(emptyMessage.toString()); } } WTF public Helpop(PluginController pluginController){} Tu znowu public MeCommand(PluginController plugin) { Nazwy metod zaczynają się od małej litery:c private int SecondsDelay(){ W ten sposób porównuje się enumy a nie klasy:< if(sender!=invited) { XDD package me.opkarol.opchat.utils; public class BukkitUtils { } Dlaczego integer jest w formie Obiektu? public static String argBuilder(String[] args, Integer removeArgumentsNumber){ Po co te event priority o.0? @EventHandler(priority = EventPriority.LOW) MemoryLeak halo public static HashMap<Player, Player> lastPlayer = new HashMap<Player, Player>(); Jest wiele więcej błędów ale nie chce mi się już wymieniać. 1. Za dużo metod statycznych, brak programowania obiektowego 2. Dziwne nazwy klas/dziwne metody 3. Nazewnictwo jednej klasy z małej litery 4. Pobieranie żywcem z configu, tragedia, tak się nie robi. Zrób sobie jakaś klase Config, ConfigLoader, Settings co ci tam pasuje i przy starcie serwera zapisuj wszystkie stringi a potem je tylko wczytuj. Zobacz chociażby na kod paweu: https://github.com/paweUdev/paweU-Safes/blob/master/src/main/java/pl/paweu/safes/config/Settings.java paweU i opkarol 2 Cytuj Odnośnik do komentarza https://skript.pl/temat/47508-plugin-opchat-download-ju%C5%BC-jest/#findComment-298272 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.