Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Ошибка в .setShooter, нужна помощь

Морпеч крч

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
_Morpech_
всем привет, дорогие девелоперы!
У меня коде задействовано два класса
часть кода в главном классе:
Код:
public class mainClass extends JavaPlugin implements Listener// старт главного класса
{
    public static mainClass INSTANCE;
    public void onEnable()
    {
        INSTANCE = this;
        getLogger().info("Plugin has started. YEHOO");
        getServer().getPluginManager().registerEvents(this,  this);
    }


SkillArrowStorm sss = new SkillArrowStorm();

@EventHandler
    public void onInteract(final PlayerInteractEvent e) { //Событие взаимодействия
        if (e.getAction() == Action.RIGHT_CLICK_AIR | e.getAction() == Action.RIGHT_CLICK_BLOCK ){// скиллы с райт кликом по воздуху/земле
            if (e.getItem() != null){
            if (e.getItem().getType() == (Material.EMERALD)){
               
                sss.onInteractlol1(e);
            }
    }
}
}
}

И код второго класса:
Код:
public class SkillArrowStorm  {
    @EventHandler
public void onInteractlol1( PlayerInteractEvent eg) {
   
    final Player player = eg.getPlayer();
    if (eg.getAction() == Action.RIGHT_CLICK_AIR | eg.getAction() == Action.RIGHT_CLICK_BLOCK ){
        if (eg.getItem() != null){
        if (eg.getItem().getType() == (Material.EMERALD)){
           
            final ItemStack emeraldItem = new ItemStack(Material.EMERALD);
            final ItemMeta emeraldMeta = emeraldItem.getItemMeta();
            emeraldMeta.setDisplayName(ChatColor.GOLD+"Arrow Storm");
            emeraldItem.setItemMeta(emeraldMeta);
            for(int i = 0; i <= 20; i++)
          {
               
                Location fgf = new Location(eg.getPlayer().getWorld(), eg.getPlayer().getLocation().getX(), eg.getPlayer().getLocation().getY() + 10, eg.getPlayer().getLocation().getZ());
                Vector gg = eg.getPlayer().getLocation().getDirection();
              Arrow Arr = eg.getPlayer().getWorld().spawnArrow(fgf , gg, 0.6f, 15);
                Arr.setTicksLived(200);
                Arr.setShooter(eg.getPlayer());
                 
          }
           
            eg.getPlayer().getInventory().removeItem( emeraldItem );
            eg.getPlayer().sendMessage(ChatColor.GREEN+"Ваше умение будет возвращенно через: "+ChatColor.RED+"15 seconds");
           
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(mainClass.INSTANCE , new Runnable(){
                @Override
                public void run(){
                   
                    player.getInventory().addItem( emeraldItem );
                   
               }
            }, 300L);
        }
    }
}
}
}

При пкм игрока с изумрудом ( предмет срабатывания условия )
консоль выдает ошибку. ругается на строку с sss.onInteractlol1(e); в главном классе
и на строку Arr.setShooter(eg.getPlayer()); во втором классе.
Надеюсь, кто-то мне поможет хд, гугл не помог.
 
всем привет, дорогие девелоперы!
У меня коде задействовано два класса
часть кода в главном классе:
Код:
public class mainClass extends JavaPlugin implements Listener// старт главного класса
{
    public static mainClass INSTANCE;
    public void onEnable()
    {
        INSTANCE = this;
        getLogger().info("Plugin has started. YEHOO");
        getServer().getPluginManager().registerEvents(this,  this);
    }


SkillArrowStorm sss = new SkillArrowStorm();

@EventHandler
    public void onInteract(final PlayerInteractEvent e) { //Событие взаимодействия
        if (e.getAction() == Action.RIGHT_CLICK_AIR | e.getAction() == Action.RIGHT_CLICK_BLOCK ){// скиллы с райт кликом по воздуху/земле
            if (e.getItem() != null){
            if (e.getItem().getType() == (Material.EMERALD)){
              
                sss.onInteractlol1(e);
            }
    }
}
}
}

И код второго класса:
Код:
public class SkillArrowStorm  {
    @EventHandler
public void onInteractlol1( PlayerInteractEvent eg) {
  
    final Player player = eg.getPlayer();
    if (eg.getAction() == Action.RIGHT_CLICK_AIR | eg.getAction() == Action.RIGHT_CLICK_BLOCK ){
        if (eg.getItem() != null){
        if (eg.getItem().getType() == (Material.EMERALD)){
          
            final ItemStack emeraldItem = new ItemStack(Material.EMERALD);
            final ItemMeta emeraldMeta = emeraldItem.getItemMeta();
            emeraldMeta.setDisplayName(ChatColor.GOLD+"Arrow Storm");
            emeraldItem.setItemMeta(emeraldMeta);
            for(int i = 0; i <= 20; i++)
          {
              
                Location fgf = new Location(eg.getPlayer().getWorld(), eg.getPlayer().getLocation().getX(), eg.getPlayer().getLocation().getY() + 10, eg.getPlayer().getLocation().getZ());
                Vector gg = eg.getPlayer().getLocation().getDirection();
              Arrow Arr = eg.getPlayer().getWorld().spawnArrow(fgf , gg, 0.6f, 15);
                Arr.setTicksLived(200);
                Arr.setShooter(eg.getPlayer());
                
          }
          
            eg.getPlayer().getInventory().removeItem( emeraldItem );
            eg.getPlayer().sendMessage(ChatColor.GREEN+"Ваше умение будет возвращенно через: "+ChatColor.RED+"15 seconds");
          
            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(mainClass.INSTANCE , new Runnable(){
                @Override
                public void run(){
                  
                    player.getInventory().addItem( emeraldItem );
                  
               }
            }, 300L);
        }
    }
}
}
}

При пкм игрока с изумрудом ( предмет срабатывания условия )
консоль выдает ошибку. ругается на строку с sss.onInteractlol1(e); в главном классе
и на строку Arr.setShooter(eg.getPlayer()); во втором классе.
Надеюсь, кто-то мне поможет хд, гугл не помог.
Какую ошибку? -_-
 
Скопируй из консоли
минутку..
Loading libraries, please wait...
[17:48:14 INFO]: Starting minecraft server version 1.7.2
[17:48:14 INFO]: Loading properties
[17:48:14 INFO]: Default game type: SURVIVAL
[17:48:14 INFO]: Generating keypair
[17:48:14 INFO]: Starting Minecraft server on 127.0.0.1:25565
[17:48:15 INFO]: This server is running CraftBukkit version git-Bukkit-1.7.2-R0.
2-b2974jnks (MC: 1.7.2) (Implementing API version 1.7.2-R0.2)
[17:48:15 ERROR]: Could not load 'plugins\BattleOfHistory.jar' in folder 'plugin
s'
org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: org/bu
kkit/projectiles/ProjectileSource
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
ava:182) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
java:308) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
.java:231) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.ja
va:255) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.craftbukkit.v1_7_R1.CraftServer.<init>(CraftServer.java:23
3) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.PlayerList.<init>(PlayerList.java:63) [c
raftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.DedicatedPlayerList.<init>(SourceFile:14
) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.jav
a:126) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java
:424) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6
17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
Caused by: java.lang.NoClassDefFoundError: org/bukkit/projectiles/ProjectileSour
ce
at common.mainClass.<init>(mainClass.java:31) ~[?:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
~[?:1.7.0_67]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
~[?:1.7.0_67]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce) ~[?:1.7.0_67]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.7.0_6
7]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
ava:178) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
... 9 more
Caused by: java.lang.ClassNotFoundException: org.bukkit.projectiles.ProjectileSo
urce
at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader
.java:70) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.
java:53) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_67]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_67]
at common.mainClass.<init>(mainClass.java:31) ~[?:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
~[?:1.7.0_67]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
~[?:1.7.0_67]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce) ~[?:1.7.0_67]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.7.0_6
7]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
ava:178) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
... 9 more
[17:48:15 INFO]: [Battle of History arena1] Loading Battle of History arena1 v1.
0
[17:48:15 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
[17:48:15 WARN]: The server will make no attempt to authenticate usernames. Bewa
re.
[17:48:15 WARN]: While this makes the game possible to play without internet acc
ess, it also opens up the ability for hackers to connect with any username they
choose.
[17:48:15 WARN]: To change this, set "online-mode" to "true" in the server.prope
rties file.
[17:48:15 INFO]: Preparing level "world"
[17:48:15 INFO]: Preparing start region for level 0 (Seed: 5516646978538238130)
[17:48:15 WARN]: Could not get information about this CraftBukkit version; perha
ps you are running a custom one?: IOException
[17:48:15 WARN]: Could not get latest artifact information: IOException
[17:48:16 INFO]: Preparing start region for level 1 (Seed: -3251969568504625027)

[17:48:16 INFO]: Preparing start region for level 2 (Seed: -3251969568504625027)

[17:48:17 INFO]: [Battle of History arena1] Enabling Battle of History arena1 v1
.0
[17:48:17 INFO]: [Battle of History arena1] Plugin has started. YEHOO
[17:48:17 INFO]: Server permissions file permissions.yml is empty, ignoring it
[17:48:17 INFO]: Done (1,969s)! For help, type "help" or "?"
>
Скопируй из консоли
отправил
 
.setShooter принимает не Player, а ProjectileSource
ProjectileSource принимает значение игрока
.setShooter принимает не Player, а ProjectileSource
точнее, ProjectileSource может быть игроком
Скопируй из консоли
Есть мысли?
просто я уже день пытаюсь решить эту проблемы хд
 
Ты пытаешься запустить плагин на сервере который ни слухом ни духом про ProjectileSource.
 

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

Назад
Верх