Skocz do zawartości

Rekomendowane odpowiedzi

Witajcie!

 

Dzisiaj napisałem mój pierwszy plugin!

 

Spytacie co on daje.

 

Otóż umożliwia nam zmianę wiadomości po wpisaniu nieprawidłowej komendy.

 

Ktoś powie no wow przecież można to zrobić bez pluginów, ale nie da się tam użyć nazwy komendy(którą wpisuje się źle).

 

Oraz z powodu że nie znalazłem takiego pluginu(w którym da się użyć nazwy komendy(którą wpisuje się źle).

 

DOWNLOAD:

https://www.mediafire.com/?1otaoa0a6cids6b

SKAN:

https://tinyurl.com/ybya3nb4

SOURCE CODE:

https://pastebin.com/kTT51g4N

Edytowane przez K0dziakOfSky
Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/
Udostępnij na innych stronach

Czemu nie zrobiłeś listy w configu?

        player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Linia1").replaceAll("/command/", cmd)));
        player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Linia2")));

zamiast tego mogłeś zrobić:

for(String s : getConfig().getStringList("helpcmd")){

}player.sendMessage(ChatColor.translateAlternateColorCodes('&', s.replaceAll("/command/", cmd)));

 

+ w twoim wykonaniu moge dodac nazwe komendy tylko w stringu o nazwie Linia1 a w Linia2 juz nie działa. Polecałbym ci zmienić to :) 

2.  Konstruktor jest zbędny tzn nie wiem po co go wgl zrobiles jesli jest pusty :D 

3. powinines robic ify typu if(false){return}

czyli zamiast:

 

  public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { if (!event.isCancelled()) {
      Player player = event.getPlayer();
      String cmd = event.getMessage().split(" ")[0];
      org.bukkit.help.HelpTopic topic = Bukkit.getServer().getHelpMap().getHelpTopic(cmd);
      if (topic == null) {
        player.sendMessage(ChatColor.DARK_GRAY + "===========================");
        player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Linia1").replaceAll("/command/", cmd)));
        player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Linia2")));
        player.sendMessage(ChatColor.DARK_GRAY + "===========================");
        event.setCancelled(true);
      }
    }
  }

to zrobić
 

  public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { 
      if (event.isCancelled()) {
         return;
     }
      Player player = event.getPlayer();
      String cmd = event.getMessage().split(" ")[0];
      org.bukkit.help.HelpTopic topic = Bukkit.getServer().getHelpMap().getHelpTopic(cmd);
      if (topic != null) {
          return;
        }
        player.sendMessage(ChatColor.DARK_GRAY + "===========================");
        player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Linia1").replaceAll("/command/", cmd)));
        player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Linia2")));
        player.sendMessage(ChatColor.DARK_GRAY + "===========================");
        event.setCancelled(true);
  }

kod staje się wtedy bardziej czytelny :) 

Edytowane przez dekros
Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-131374
Udostępnij na innych stronach

@dekros dzięki twoim poradom wiem więcej oraz wypuszczam kolejną wersję <3 

ABY POBRAĆ NOWĄ WERSJĘ POBIERZ JESZCZE RAZ!

(TEN SAM PLIK INNA WERSJA <3)

Edytowane przez K0dziakOfSky
Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-131377
Udostępnij na innych stronach

jeszcze jedno, nie jestem pewien czy to wina dekimpilatora ale jeśli robisz coś takiego w kodzie:
 

public class Main extends org.bukkit.plugin.java.JavaPlugin implements org.bukkit.event.Listener

czyli zamiast JavaPlugin podajesz org.bukkit.plugin.java.. to nie potrzebnie to robisz

dodatkowo pamietaj o tym że listenery powinines rozdzielać na osobne klasy czyli jak masz ten event: 

PlayerCommandPreprocessEvent 

to zrobić klase np

PlayerListeners

i w niej robić wszystkie listenery które zajmują się czymś związanym z graczami np jak masz od blocków BlockBreakEvent to zrobić to w osobnej klasie by dało się łatwiej przeglądać kod ;)

Ewentualnie listener per classa ale to jak dla mnie nie potrzebny syf sie robi xD

 

Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-131383
Udostępnij na innych stronach

@dekros z pierwszym to akurat dekompiler xd a z drugim to wiem ale na plugin taki to chyba jest bez sensu :P
 

DODAJE SOURCECODE DLA OSÓB KTÓRE BY CHCIAŁY MI DAĆ JAKIEŚ PORADY <3

https://pastebin.com/kTT51g4N

Edytowane przez K0dziakOfSky
Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-131412
Udostępnij na innych stronach

Nie nazywa sie glownej klasy Main tylko np UnknownCmdPlugin czy jakos tak

Plugin moze byc jak na twoja inteligencje javy ale juz jest duzo takich pluginow napisz cos innego

Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-132855
Udostępnij na innych stronach

@PROXEN Klasę główną można nazwać Main jak i nazwą plugin ale i tak to nic nie zmienia ale wygodniej mi Main

@Sewer Spigot 1.8.8

Edytowane przez K0dziakOfSky
Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-133001
Udostępnij na innych stronach

  • 2 tygodnie później...

Obsluguje ChestCommands? Bo np.mam komende tam /kit i otwiera sie gui z itemami. A po wgraniu CustomUnknownMessage te komendy  nie działają

Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-134841
Udostępnij na innych stronach

13 godzin temu, esej napisał:

Moim zdaniem krótkie pluginy nie mają sensu... 6/10

Ty zawsze musisz się do czegoś przyczepić ;/

Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-134844
Udostępnij na innych stronach

  • 4 miesiące temu...

Prosty plugin ale dosyć średni xd

        player.sendMessage(ChatColor.DARK_GRAY + "===========================");
        player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Linia1").replaceAll("/command/", cmd)));
        player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Linia2")));
        player.sendMessage(ChatColor.DARK_GRAY + "===========================");

Czemu tak? Nie lepiej stringliste zrobić? Ew. .replaceAll("/newline/", "\n"); ???

Zrób sobię chat utila bo chatcolorem się zamęczysz.

Przykład:

    public static String pluginColors(final String s) {
        return ChatColor.translateAlternateColorCodes('&', s.replace(">", "»").replace("<", "«"));
    }

Możesz też dorobić title przykład

p.sendTitle

lub użyj swojego api na title. (jeżeli masz)

 

Czepiam się do rzeczy które pomogą ci lepiej pisać pluginy. (Oraz wygodniej xd)

Typyyyy.... Nie wiem jak można się czepiać do nazwy klasy głownej 'Main'. Każdy może nazwać jak chce, i nie ma co tu się czepiać

 

Moja ocena 5/10

Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-159064
Udostępnij na innych stronach

1 godzinę temu, SKsteiner napisał:

Typyyyy.... Nie wiem jak można się czepiać do nazwy klasy głownej 'Main'. Każdy może nazwać jak chce, i nie ma co tu się czepiać

Zazwyczaj powinno sie ja nazywać albo Main albo np.ChatPlugin jezeli plugin dotyczy zarzadzania chatem itp. Itd.

Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-159074
Udostępnij na innych stronach

23 godziny temu, bgK1NG napisał:

Zazwyczaj powinno sie ja nazywać albo Main albo np.ChatPlugin jezeli plugin dotyczy zarzadzania chatem itp. Itd.

Tak. Ale każdy może nazwać to jak chce a takie 'hejty'/'czepianie' o nazwę klasy to nie jest normalne XD

Ktoś nazwie klasę karaluch i zostanie zhejtowany? Tak to ma wyglądać?

Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-159170
Udostępnij na innych stronach

Dnia 4.12.2017 o 23:11, bgK1NG napisał:

Zazwyczaj powinno sie ja nazywać albo Main albo np.ChatPlugin jezeli plugin dotyczy zarzadzania chatem itp. Itd.

Nie trzeba ich tak nazywać. Jak komu wygodniej tak sobie napisze, a plugin wykorzystam na moim serwerze :bezkappy: (gdzie grajo miliony ludziów :kappa:)

Edytowane przez PiTeKLive
Odnośnik do komentarza
https://skript.pl/temat/19291-kunkowncmd-wiadomo%C5%9B%C4%87-po-wpisaniu-nieprawid%C5%82owej-komendy/#findComment-159190
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...