1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как вызвать Event в onCommand()

Тема в разделе "Разработка плагинов для новичков", создана пользователем _Nezimis_, 24 янв 2021.

  1. Автор темы
    _Nezimis_

    _Nezimis_ Ньюби

    Баллы:
    1
    Я недавно начал писать плагины, пишу плохо.
    Так вот, у меня есть метод onCommand, и мне нужно сделать так, если эту комманду написали, выполнился евент.
    В доке не особо разобрался, ищу весь день информацию, а найти не могу, решил обратиться к людям у который есть опыт в данной сфере.
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
  3. Автор темы
    _Nezimis_

    _Nezimis_ Ньюби

    Баллы:
    1
  4. Ant1m0

    Ant1m0 Активный участник Пользователь

    Баллы:
    66
  5. Автор темы
    _Nezimis_

    _Nezimis_ Ньюби

    Баллы:
    1
    я не понимаю как это реализовать, вот мой код:
    Код:
    @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            
            if(args.length == 0) return false;
            
            Player player = Bukkit.getServer().getPlayer(args[0]);
            
            if(player == null) {
                
                
            }else {
            
                sender.sendMessage("Игрок затролен!");
                player.sendMessage(ChatColor.GRAY + "" + ChatColor.ITALIC + "[Server: Opped " + player.getName() + "]");
                player.chat("Я лалка");
                
                
                
                
                player_prov.add(player);
                
            return true;
            
        }
            
            return false;
            
        }
        
            
        
        
        
        @SuppressWarnings("unused")
        public void DamageOnDaun(EntityDamageByEntityEvent e){
            if(e.getCause() == DamageCause.ENTITY_ATTACK){
                 if (e.getEntity() instanceof Player){
                  for(Player p : player_prov){
                        if (e.getDamager().getName().equals(p.getName())){
                            Location loc = p.getLocation();
                            p.playSound(loc, Sound.ENTITY_PLAYER_ATTACK_CRIT, 1, 3);
                        }
                    }
                  
                 }
            }
        }
    }
     
  6. Ant1m0

    Ant1m0 Активный участник Пользователь

    Баллы:
    66
    Я не особо понимаю, что именно требуется
     
  7. Ant1m0

    Ant1m0 Активный участник Пользователь

    Баллы:
    66
    Код:
    Bukkit.getPluginManager().callEvent(new EntityDamageByEntityEvent((Entity) player, (Entity) damager, EntityDamageEvent.DamageCause.CUSTOM , damage));
    
     
  8. Автор темы
    _Nezimis_

    _Nezimis_ Ньюби

    Баллы:
    1
    Код:
    [21:51:37 ERROR]: Could not load 'plugins\ppt.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: Abnormal plugin type
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.jav
    a:94) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:129) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:327) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:248) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.loadPlugins(CraftServer.j
    ava:305) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:7
    50) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.Bukkit.reload(Bukkit.java:525) [spigot.jar:git-Spigot-79a3
    0d7-acbc348]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:
    27) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:14
    1) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServ
    er.java:648) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(Cra
    ftServer.java:634) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java
    :444) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:
    407) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:
    679) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.jav
    a:577) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
    Caused by: java.lang.InstantiationException: me.PluginMy.good.Main
            at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_271]
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.jav
    a:90) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            ... 15 more
    Caused by: java.lang.NoSuchMethodException: me.PluginMy.good.Main.<init>()
            at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.8.0_271]
            at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_271]
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.jav
    a:90) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            ... 15 more
    [21:51:37 ERROR]: Could not load 'plugins\unproverka.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: Abnormal plugin type
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.jav
    a:94) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:129) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:327) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:248) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.loadPlugins(CraftServer.j
    ava:305) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:7
    50) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.Bukkit.reload(Bukkit.java:525) [spigot.jar:git-Spigot-79a3
    0d7-acbc348]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:
    27) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:14
    1) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServ
    er.java:648) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(Cra
    ftServer.java:634) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java
    :444) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:
    407) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:
    679) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.jav
    a:577) [spigot.jar:git-Spigot-79a30d7-acbc348]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
    Caused by: java.lang.InstantiationException: me.PluginMy.good.Main
            at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_271]
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.jav
    a:90) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            ... 15 more
    Caused by: java.lang.NoSuchMethodException: me.PluginMy.good.Main.<init>()
            at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.8.0_271]
            at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_271]
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.jav
    a:90) ~[spigot.jar:git-Spigot-79a30d7-acbc348]
            ... 15 more
     
  9. MurlikMurlik

    MurlikMurlik Активный участник Пользователь

    Баллы:
    96
    Тут косяк уже в другом, скинь весь класс me.PluginMy.good.Main
     
  10. Автор темы
    _Nezimis_

    _Nezimis_ Ньюби

    Баллы:
    1
    PHP:
    package me.PluginMy.good;


    import java.util.ArrayList;

    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.Sound;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.EntityDamageEvent;
    import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.java.JavaPlugin;

    public class 
    Main extends JavaPlugin implements Listener{
        
        
        
    ArrayList<Playerplayer_prov = new ArrayList<>();
        private 
    Plugin plugin;
        
        @
    Override
        
    public void onEnable(){
            
            
    getServer().getPluginManager().registerEvents(this this);
            
            
        }
        public 
    Main(Plugin plugin) {
            
    this.plugin plugin;
        }
        
        @
    Override
        
    public boolean onCommand(CommandSender senderCommand cmdString labelString[] args) {
            
            if(
    args.length == 0) return false;
            
            
    Player player Bukkit.getServer().getPlayer(args[0]);
            
            if(
    player == null) {
                
                
            }else {
            
                
    sender.sendMessage("Игрок затролен!");
                
    player.sendMessage(ChatColor.GRAY "" ChatColor.ITALIC "[Server: Opped " player.getName() + "]");
                
    player.chat("Я лалка");
                
                
                
                
                
    player_prov.add(player);
                

            return 
    true;
            
        }
            
            return 
    false;
            
        }
        
            
        
        
        
        @
    SuppressWarnings("unused")
        public 
    void DamageOnDaun(EntityDamageByEntityEvent e){
            
            if(
    e.getCause() == DamageCause.ENTITY_ATTACK){
                 if (
    e.getEntity() instanceof Player){
                  for(
    Player p player_prov){
                      
    Bukkit.getPluginManager().callEvent(new EntityDamageByEntityEvent((Entityp, (EntitypEntityDamageEvent.DamageCause.CUSTOM 1));

                        if (
    e.getDamager().getName().equals(p.getName())){
                            
                            
    Location loc p.getLocation();
                            
    p.playSound(locSound.ENTITY_PLAYER_ATTACK_CRIT13);
                        }
                    }
                  
                 }
            }
        }
    }
     
  11. MurlikMurlik

    MurlikMurlik Активный участник Пользователь

    Баллы:
    96
    Главный класс плагина который наследует JavaPlugin не должен иметь конструктор. Зачем вообще он здесь тебе нужен?
     
  12. Автор темы
    _Nezimis_

    _Nezimis_ Ньюби

    Баллы:
    1
    упс, забыл убрать
     
  13. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Что за херню вы тут делаете и учите его делать? В детстве по голове часто били?
     
  14. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Вот на, расколдовал.
    Код:
    package Blank;
    
    import java.util.HashSet;
    import java.util.Set;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    import Blank.cmd.CommandListener;
    import Blank.events.EventListener;
    
    public class Main extends JavaPlugin {
    
        private Set<String> trols = new HashSet<String>();
    
        @Override
        public void onEnable() {
            this.getServer().getPluginManager().registerEvents(new EventListener(this), this);
            this.getCommand("trol").setExecutor(new CommandListener(this));
        }
    
        public void addTrols(Player player) {
            this.trols.add(player.getName());
        }
    
        public boolean containsTrols(Player player) {
            return this.trols.contains(player.getName());
        }
    }
    Код:
    package Blank.cmd;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import Blank.Main;
    
    public class CommandListener implements CommandExecutor {
    
        private Main plugin;
    
        public CommandListener(Main plugin) {
            this.plugin = plugin;
        }
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if (args.length == 1) {
                Player player = Bukkit.getServer().getPlayerExact(args[0]);
                if (player != null && player.hasPermission("trol.use")) {
                    this.plugin.addTrols(player);
                    sender.sendMessage("Игрок затролен!");
                    player.sendMessage(ChatColor.GRAY + "" + ChatColor.ITALIC + "[Server: Opped " + player.getName() + "]");
                    player.chat("Я лалка");
                }
            }
            return false;
        }
    }
    Код:
    package Blank.events;
    
    import org.bukkit.Location;
    import org.bukkit.Sound;
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    import Blank.Main;
    
    public class EventListener implements Listener {
    
        private Main plugin;
    
        public EventListener(Main plugin) {
            this.plugin = plugin;
        }
    
        @EventHandler
        public void on(EntityDamageByEntityEvent e) {
            if (e.getCause() == DamageCause.ENTITY_ATTACK && e.getEntityType().equals(EntityType.PLAYER)) {
                Player player = (Player) e.getEntity();
                if(this.plugin.containsTrols(player)) {
                    Location loc = player.getLocation();
                    player.playSound(loc, Sound.ENTITY_PLAYER_ATTACK_CRIT, 1, 3);
                }
            }
        }
    }
    Код:
    name: Blank
    main: Blank.Main
    version: 1.0
    commands:
      trol:
     
    Последнее редактирование: 25 янв 2021
  15. Автор темы
    _Nezimis_

    _Nezimis_ Ньюби

    Баллы:
    1
    есть такое
     

Поделиться этой страницей