Stránka 1 z 1

Java Pomoc - Zachytávání VŠECH příkazů.

Napsal: 14 dub 2016, 13:45
od Cernokneznik
"Nemám"
Ahoj.

Snažím se napsat si plugin, který by umožňil hráčům vytvářet si soukromé aliasy.
To znamená-
Chci spawnout kuře, ale příkaz

Kód: Vybrat vše

/summon chicken
je pro mě moc dlouhý... chtěl bych si nastavit, že pokud napíšu

Kód: Vybrat vše

/chicken
, vykoná se výše zmíněný příkaz.
Našel jsem pár podobných pluginů, bohužel- všechny jsou server-wide (Jakýkoliv alias který si nastavím třeba já může vykonávat kdokoliv další, což se mi nelíbí z důvodu možných kolizí (někdo bude chtít používat příkaz /chicken na to a ten zas ono...))

Nedaří se mi bohužel přijít na to, jak odchytávat příkazy.
když použiji onCommand, příkaz nefunguje dokud není udaný v plugin.yml souboru.
Proto se ptám někoho kdo by snad mohl být zkušený... Jak odchytávat všechny zprávy/příkazy?
Pravděpodobně je to fakt noob otázka, ale tohle je můj první počin co zkouším jiný programovací jazyk než PHP a C#

Díky moc za případný rady.

Re: Java Pomoc - Zachytávání VŠECH příkazů.

Napsal: 14 dub 2016, 14:42
od Cernokneznik
Přoč mi nefunguje ani takovýhle jednoduchý kód?
Plugin se v pořádku načte, žádné chybové hlášky v konzoli...
Avšak

Kód: Vybrat vše

package pw.cerx.alias;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.logging.Logger;

public class Main extends JavaPlugin {
    Logger log = getLogger();
    public PluginDescriptionFile pluginInfo = getDescription();

    @Override
    public void onEnable(){
        //Při zapnutí
        log.info("Initialized.");
    }
    @Override
    public void onDisable(){
        //Když se server vypíná
        log.info("Disabled.");
    }

    @EventHandler
    public void PlayerCommand(PlayerCommandPreprocessEvent event) {
        Player p = event.getPlayer();
        if (event.getMessage().equalsIgnoreCase("/test")) {
            event.setCancelled(true);
            p.sendMessage("test");
        }
    }

}

Po napsání /test stále dostávám hlášku o neexistujícím příkaze namísto odpovědi "test" od pluginu.

Re: Java Pomoc - Zachytávání VŠECH příkazů.

Napsal: 14 dub 2016, 15:42
od Hanakocz
Zkus tam dát else, "jiný command", tedy aby když to ten event zachytí, tak to vždy něco napíše.
A možná zkus ma začátek detekovat normální zprávu, bez lomitka, pokud to půjde....tak se blížíš, pokud ani to ne, tak... ;)

Re: Java Pomoc - Zachytávání VŠECH příkazů.

Napsal: 14 dub 2016, 18:41
od WorkiS
Také to jde udělat do onEnable() {}

Bukkit.getServer().getPluginManager().registerEvents(this, this);

Re: Java Pomoc - Zachytávání VŠECH příkazů.

Napsal: 14 dub 2016, 18:43
od DenOwq
tak by to nemělo být workis, hlavní třída je jen na aktivaci pluginu, né na kontrolování eventu.