Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Pobieranie powodu od gracz


Jacuniek2

Rekomendowane odpowiedzi

Opublikowano

Witam,

Chce, aby przy wyłączaniu czatu było trzeba dać powod i nie wiem jak to zrobić :(

Chciałem tak:

public void onPlayerChat(AsyncPlayerChatEvent e){
                boolean powod = e.getMessage().equalsIgnoreCase("");

Ale raczej nie za działa.

Pomoże ktoś prosze?

Opublikowano

To bardziej przy kodzie komendy niż w evencie musisz zrobić.

Jeśli masz jakiś problem z Plugin'em/Skryptem do MineCraft'a to pisz na PW/Skype/GG, lub inny komunikator podany w profilu. Pomagam za darmo.

Pracuję na zlecenia. Do stałej pracy bardzo ciężko mnie namówić. ^^

 

Przepiszę Skrypt na Plugin! W większości przypadków za darmo.

Opublikowano

Zrób sobie klasę z komendą, zaimplementuj CommandExecutor i zrób komendę, jakiś boolean czy czat jest włączony (najlepiej obiekt). Potem przelaczaj i daj sobie powód czy co chcesz, a w evencie tylko sprawdzaj czy jest włączony. Jeśli nie to event.setCancelled(true);

Opublikowano

Moment, chyba się nie rozumiemy :D

Chodzi mi o coś takiego:

Gracz pisze:

/chat off <powod> i zamiast <powod> pisze np.: spam.

Następnie wyświetla się z consoli: Czat został wyłączony za: {i tu ten powód, czyli spam}

Następnie jak ktoś będzie chciał napisać coś to mu wyskoczy: czat wyłączony za: {powod, czyli spam}

I ostatnie jak ktoś będzie chciał znowu wyłączyć to mu napisze: Czat jest już wyłączony za : {powod, czyli spam}

:D

Opublikowano


if (args[0].equalsIgnoreCase("off")){

if(args.length == 1){

p.sendMessage("§cMusisz wpisać powód!");

return false;

}

 

Opublikowano

logi konsoli:

 

 

[17:46:57 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'chat' in plugin EpicChat v_1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:740) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:957) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:818) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:47) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:157) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.ServerConnection.c(SourceFile:134) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:667) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:258) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:558) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:469) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
Caused by: java.lang.NullPointerException
        at me.tomecki1.EpicChat.Listenery.onCommand(Listenery.java:57) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[silnik.jar:git-Bukkit-1.7.9-R0.2-24-g07d4558-b3115jnks]
        ... 13 more

 

 

Mój kod:

 

 

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
        if(cmd.getName().equalsIgnoreCase("Chat")){
            if(sender.hasPermission("EChat.chat")){
            if(args.length !=1){
                Bukkit.broadcastMessage("§2Available commands:");
                Bukkit.broadcastMessage("§6/chat on: §fAllows you write in chat");
                Bukkit.broadcastMessage("§6/chat off: §fMakes it impossible to write in chat a player and a person without permissions.");
                Bukkit.broadcastMessage("§6/cc: §fCleared chat");
                return true;
            }
            }
            if(args[0].equalsIgnoreCase("on")){
                if(sender.hasPermission("EChat.chat.on")){
                Bukkit.broadcastMessage("§3--->§4Chat is enabled§3<---");
                Chat = true;
                }
            }    
            if(args[0].equalsIgnoreCase("off")){
                if(sender.hasPermission("EChat.chat.off")){
                Bukkit.broadcastMessage("§3--->§4Chat is disabled§3<---");
            if (args[0].equalsIgnoreCase("off")){
                if(args.length == 1){
                    
                    p.sendMessage("§cMusisz wpisać powód!");
                    return false;
            }
              

 

 

Nie działa. + nie uznaje p    w   p.sendMessage

Opublikowano

Boże.. człowieku, nie bierz się za Bukkita dopóki, dopóty nie wykujesz podstaw Javy na pamięć.

Tutaj nawet nie chodzi o samą Javę, tutaj chodzi o spójność logiczną, najpierw sprawdzasz czy pierwszy argument jest taki, a potem dopiero ilość argumentów..

 

Kod powinien wyglądać mniej więcej tak:
 

@Override
public boolean onCommand(final CommandSender commandSender, final Command command, final String commandLabel, final String[] strings) {
    if (!commandSender.hasPermission("uprawnienie")) {
        commandSender.sendMessage("Brak upr");
        return false;
    }

    if (strings.length != 2) {
        commandSender.sendMessage("Brak arg");
        return false;
    }

    final String reason = strings[0];
    if (strings[0].equalsIgnoreCase("on")) {
        Bukkit.broadcastMessage("Chat wlaczony, reason: " + reason);
        //wlacza chat
    
    else if (strings[0].equalsIgnoreCase("off")) {
        //to co wczesniej
    }
    
    else {
        //available commands

    return true; 

Itd.. pamiętaj o formatowaniu kodu, bo ciężko jest się cokolwiek rozczytać..

 

­

Opublikowano

Nie bierz sie za pisanie pluginow (ew. Ctrl c ctrl v)

Argument musi byc pobrany z np. tablicy tj. args[]

Pobierasz taki argument jako powod i tworzysz np finala (chociaz tak naprawde nie powinno sie stosowac finala bo moze to byc potem klopotliwe) i zmienna odpowiadajaca za pobrany argument .

Potem tworzysz blok z if w ktorym wyswietlasz wiadomosc o poprawnej formie jezeli argument nie zostal podany

Opublikowano

@bartzz

1. Czytaj ze zrozumieniem... ( o co mi chodzi? "Chat został włączony z powodu", chodziło mi o wyłączania)

2.Każdy od czegoś zaczynał...

3. Sam mi piszesz naucz się javy, przy czym sam zapominałeś o "{}"...

4. Po co dałeś else{ Na dole?

5. + musiałem dodać chat false i true

6. + poprawiłem kod...
 

@ Chłopaki:

5. Po co piszecie: "Nie bierz się za pisanie pluginów (ew.Ctrl c ctrl v)" etc. ?

I tak będę lepszy...

6. Ortografia...

7. Przykro mi to mówić, ale musiałem dodać parę rzeczy do tego kodu, więc NIE JESTEM NAJGORSZY!!!

Ale i tak dziękuję za pomoc! :)

Pozdrawiam

Opublikowano

@bartzz

 

1. Czytaj ze zrozumieniem... ( o co mi chodzi? "Chat został włączony z powodu", chodziło mi o wyłączania)

 

2.Każdy od czegoś zaczynał...

 

3. Sam mi piszesz naucz się javy, przy czym sam zapominałeś o "{}"...

 

4. Po co dałeś else{ Na dole?

 

5. + musiałem dodać chat false i true

 

6. + poprawiłem kod...

 

 

@ Chłopaki:

 

5. Po co piszecie: "Nie bierz się za pisanie pluginów (ew.Ctrl c ctrl v)" etc. ?

 

I tak będę lepszy...

 

6. Ortografia...

 

7. Przykro mi to mówić, ale musiałem dodać parę rzeczy do tego kodu, więc NIE JESTEM NAJGORSZY!!!

Ale i tak dziękuję za pomoc! :)

Pozdrawiam

1. Nie chciało mi się kombinować, to jest Twój kod, ja Ci dałem tylko przykład użycia.

 

2. Ty powinieneś zacząć od JAVY, aniżeli Bukkita, bo potem powstają właśnie takie tematy.

 

3. Kod był pisany na przeglądarce.

 

4. Jeśli żaden argument nie zostanie spełniony to wyświetli się to co jest w "else", czyli jak nie będzie on/off, to powinny się tam wyświetlić dostępne komendy.

 

5. Zobacz punkt pierwszy!

 

6. Brawo Ty!

 

Co do dalszej części (bo są dziwne numery, więc ciężko obczaić o co chodzi) - to bądź lepszy, naucz się Javy, a potem bierz się za API...

 

­

Opublikowano

@bartzz

 

1. Czytaj ze zrozumieniem... ( o co mi chodzi? "Chat został włączony z powodu", chodziło mi o wyłączania)

 

2.Każdy od czegoś zaczynał...

 

3. Sam mi piszesz naucz się javy, przy czym sam zapominałeś o "{}"...

 

4. Po co dałeś else{ Na dole?

 

5. + musiałem dodać chat false i true

 

6. + poprawiłem kod...

 

 

@ Chłopaki:

 

5. Po co piszecie: "Nie bierz się za pisanie pluginów (ew.Ctrl c ctrl v)" etc. ?

 

I tak będę lepszy...

 

6. Ortografia...

 

7. Przykro mi to mówić, ale musiałem dodać parę rzeczy do tego kodu, więc NIE JESTEM NAJGORSZY!!!

Ale i tak dziękuję za pomoc! :)

Pozdrawiam

Jakbys zauwazyl pisze bez polskich znakow wiec "orto" poziom -100 co nie?

Jak napisalem ew. Ctrl c Ctrl W chodzilo mi o to ze pewnie zaczniesz tak robic szybciej niz myslisz a jak jestes super programista i wytykasz bledy innym to popros moderatora o przeniesienie tego tematu do kosza bo ja na twoim miejscu zle bym sie czul pytajac o cos latwego a w odpowidziach na niedomiar zlego wytykajac osoba brak klamerek %.%

if(cmd.getName().equalsIgnoreCase("Chat")){
            if(sender.hasPermission("EChat.chat")){
            if(args.length !=1){
                Bukkit.broadcastMessage("§2Available commands:");
                Bukkit.broadcastMessage("§6/chat on: §fAllows you write in chat");
                Bukkit.broadcastMessage("§6/chat off: §fMakes it impossible to write in chat a player and a person without permissions.");
                Bukkit.broadcastMessage("§6/cc: §fCleared chat");
                return true;
            }
Aha

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...