Crash pluginu, aneb dělám si vlastní plugin..

Pokec o čemkoliv ostatním
Message
Autor
kamikatze
Příspěvky: 176
Registrován: 24 zář 2014, 16:33
Reputation: 0

Crash pluginu, aneb dělám si vlastní plugin..

#1 Příspěvekod kamikatze » 28 kvě 2015, 17:25

IP: 93.91.250.125:27389

CRASH:

Kód: Vybrat vše

[17:23:36 ERROR]: Could not load 'plugins/StevesWar.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: me/natan/StevesWar/Main : Unsupported major.minor version 52.0
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.loadPlugins(CraftServer.java:291) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.reload(CraftServer.java:744) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.Bukkit.reload(Bukkit.java:534) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServer.java:646) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchServerCommand(CraftServer.java:632) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at net.minecraft.server.v1_8_R2.DedicatedServer.aN(DedicatedServer.java:405) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:369) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at java.lang.Thread.run(Thread.java:744) [?:1.7.0_51]
Caused by: java.lang.UnsupportedClassVersionError: me/natan/StevesWar/Main : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.7.0_51]
at java.lang.ClassLoader.defineClass(ClassLoader.java:800) ~[?:1.7.0_51]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.7.0_51]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) ~[?:1.7.0_51]
at java.net.URLClassLoader.access$100(URLClassLoader.java:71) ~[?:1.7.0_51]
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[?:1.7.0_51]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[?:1.7.0_51]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_51]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[?:1.7.0_51]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at java.lang.ClassLoader.loadClass(ClassLoader.java:425) ~[?:1.7.0_51]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[?:1.7.0_51]
at java.lang.Class.forName0(Native Method) ~[?:1.7.0_51]
at java.lang.Class.forName(Class.java:270) ~[?:1.7.0_51]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]


Nevíte někdo prosím co s tím?
Zde je zdroják:
Main.java

Kód: Vybrat vše

package me.natan.StevesWar;

import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {

   public void onEnable() {
      this.saveDefaultConfig();;
      PluginManager pm = getServer().getPluginManager();
        pm.registerEvents(new Titles(), this);
   }
   
   public void onDisable() {
      this.saveConfig();
   }
   
}


Spawn.java

Kód: Vybrat vše

package me.natan.StevesWar;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Spawn extends JavaPlugin {

   public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
      if(sender instanceof Player) {
         Player p = (Player)sender;
         if(commandLabel.equalsIgnoreCase("sv.setspawn")) {
            if(!sender.hasPermission("setspawn")) {
               sender.sendMessage(ChatColor.RED + this.getConfig().getString("setspawn_no_permission_message"));
               return true;
            }
            getConfig().set("spawn.svet", p.getLocation().getWorld().getName());
            getConfig().set("spawn.x", p.getLocation().getBlockX());
            getConfig().set("spawn.y", p.getLocation().getBlockY());
            getConfig().set("spawn.z", p.getLocation().getBlockZ());
         }
         if(commandLabel.equalsIgnoreCase("spawn")) {
            if(getConfig().getConfigurationSection("spawn") == null) {
               p.sendMessage(ChatColor.RED + this.getConfig().getString("no_spawn_message"));
               return true;
            }
            World w = Bukkit.getServer().getWorld(getConfig().getString("spawn.svet"));
            double x = getConfig().getDouble("spawn.x");
            double y = getConfig().getDouble("spawn.y");
            double z = getConfig().getDouble("spawn.z");
            p.teleport(new Location(w, x, y, z));
            p.sendMessage(ChatColor.GREEN + this.getConfig().getString("tp_spawn_message"));
         }
      }
      return true;
   }
}

Titles.java

Kód: Vybrat vše

package me.natan.StevesWar;

import me.AdityaTD.TitlesAPI.TitlesAPI;

import org.bukkit.ChatColor;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Titles extends JavaPlugin implements Listener{
    public static Main plugin;
   
    public void onJoin(PlayerJoinEvent e) {
       TitlesAPI.sendTitle(e.getPlayer(), 10, 5 * 20, 10, ChatColor.GOLD + this.getConfig().getString("message_after_login_title"), ChatColor.AQUA + this.getConfig().getString("message_after_login_subtitle"));
       TitlesAPI.sendTabTitle(e.getPlayer(), ChatColor.GOLD + "Steve's War", ChatColor.BLUE + "www.recandplay.fakaheda.eu");
    }
}

Mike8748
Příspěvky: 823
Registrován: 30 bře 2014, 10:05
Reputation: 28

Re: Crash pluginu, aneb dělám si vlastní plugin..

#2 Příspěvekod Mike8748 » 28 kvě 2015, 17:53

Kód: Vybrat vše

Caused by: java.lang.UnsupportedClassVersionError: me/natan/StevesWar/Main : Unsupported major.minor version 52.0

znamená že plugin si zkompiloval pomocí Java 8, ale na serveru máš Java 7

buď překompiluj plugin, nebo aktualizuj Javu na serveru

kamikatze
Příspěvky: 176
Registrován: 24 zář 2014, 16:33
Reputation: 0

Re: Crash pluginu, aneb dělám si vlastní plugin..

#3 Příspěvekod kamikatze » 28 kvě 2015, 21:06

Díky, tak to jsem vyřešil.. ale nastala další chyba

Kód: Vybrat vše

> [21:09:01 ERROR]: Error occurred while enabling StevesWar v0.1 (Is it up to date?)
java.lang.IllegalArgumentException: Plugin already initialized!
at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:122) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at me.nathan.steveswar.Titles.<init>(Titles.java:12) ~[?:?]
at me.nathan.steveswar.Main.onEnable(Main.java:12) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.loadPlugin(CraftServer.java:356) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.enablePlugins(CraftServer.java:316) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.reload(CraftServer.java:746) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.Bukkit.reload(Bukkit.java:534) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServer.java:646) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchServerCommand(CraftServer.java:632) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at net.minecraft.server.v1_8_R2.DedicatedServer.aN(DedicatedServer.java:405) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:369) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [minecraft_server.jar:git-Spigot-870264a-0a645a2]

at java.lang.Thread.run(Thread.java:744) [?:1.7.0_51]
Caused by: java.lang.IllegalStateException: Initial initialization
at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:125) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at me.nathan.steveswar.Main.<init>(Main.java:7) ~[?:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.7.0_51]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[?:1.7.0_51]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.7.0_51]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[?:1.7.0_51]
at java.lang.Class.newInstance(Class.java:374) ~[?:1.7.0_51]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.loadPlugins(CraftServer.java:291) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.reload(CraftServer.java:744) ~[minecraft_server.jar:git-Spigot-870264a-0a645a2]

Mike8748
Příspěvky: 823
Registrován: 30 bře 2014, 10:05
Reputation: 28

Re: Crash pluginu, aneb dělám si vlastní plugin..

#4 Příspěvekod Mike8748 » 29 kvě 2015, 08:19

všechny 3 uvedené třídy extendují JavaPlugin, což je špatně, nejedná se o 3 pluginy ale o jeden.

Titles.java změn třeba takhle

Kód: Vybrat vše

public class Titles implements Listener{
    public static Main plugin;

public Titles(Plugin plugin) { this.plugin = plugin; }

    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
       TitlesAPI.sendTitle(e.getPlayer(), 10, 5 * 20, 10, ChatColor.GOLD + this.plugin.getConfig().getString("message_after_login_title"), ChatColor.AQUA + this.plugin.getConfig().getString("message_after_login_subtitle"));
       TitlesAPI.sendTabTitle(e.getPlayer(), ChatColor.GOLD + "Steve's War", ChatColor.BLUE + "www.recandplay.fakaheda.eu");
    }
}


a metodu onEnable v Main.java na

Kód: Vybrat vše

   public void onEnable() {
      this.saveDefaultConfig();;
      PluginManager pm = getServer().getPluginManager();
        pm.registerEvents(new Titles(this), this);
   }



jak ke zbytku zapadá třída Spawn nemám tušení, nikde na ni neodkazuješ. ale na 99% taky nebude extendovat JavaPlugin

kamikatze
Příspěvky: 176
Registrován: 24 zář 2014, 16:33
Reputation: 0

Re: Crash pluginu, aneb dělám si vlastní plugin..

#5 Příspěvekod kamikatze » 29 kvě 2015, 13:52

a nemusí extendovat Java Plugin ?

Mike8748
Příspěvky: 823
Registrován: 30 bře 2014, 10:05
Reputation: 28

Re: Crash pluginu, aneb dělám si vlastní plugin..

#6 Příspěvekod Mike8748 » 29 kvě 2015, 14:54

extendovat JavaPlugin bude jen tvoje třída Main, ostatní ne

Uživatelský avatar
Aishak
Příspěvky: 431
Registrován: 03 čer 2014, 15:02
Reputation: 1

Re: Crash pluginu, aneb dělám si vlastní plugin..

#7 Příspěvekod Aishak » 29 kvě 2015, 16:39

Jak psal Mike8748.
JavaPlugin rozšiřuje pouze hlavní třída (Main). Ostatní třídy již nemohou rozšiřovat JavaPlugin, ale pokud se nemýlím tak pouze hlavní třídu (Main nebo případně jiné další třídy). Případně mrkni na http://wiki.bukkit.org/Plugin_Tutorial, je to tam popsané.

kamikatze
Příspěvky: 176
Registrován: 24 zář 2014, 16:33
Reputation: 0

Re: Crash pluginu, aneb dělám si vlastní plugin..

#8 Příspěvekod kamikatze » 29 kvě 2015, 20:56

A jak mam tedy v ostatnich třídách načítat config a ChatColor, když to patří pod JavaPlugin ?

-- 29 kvě 2015, 20:58 --

To mam sešrotit všechno do jednoho? Není pak větší šance že se to bugne ?

Mike8748
Příspěvky: 823
Registrován: 30 bře 2014, 10:05
Reputation: 28

Re: Crash pluginu, aneb dělám si vlastní plugin..

#9 Příspěvekod Mike8748 » 29 kvě 2015, 21:23

ostatním třídám předáš instanci tvojí hlavní třídy (která extenduje JavaPlugin) jako parametr jejich kontruktoru

ten si v dané třídě uložíš do proměnné, a pak pracuješ s ní. už jsem ti psal jak změnit Titles.java a jak v Main.java upravit onEnable metodu aby se při registrování eventů v třídě Titles předal parametr

kamikatze
Příspěvky: 176
Registrován: 24 zář 2014, 16:33
Reputation: 0

Re: Crash pluginu, aneb dělám si vlastní plugin..

#10 Příspěvekod kamikatze » 29 kvě 2015, 21:25

takže to co jsi mi psal mam překopírovat (nejlépe i pochopit) a hotovo ?

-- 29 kvě 2015, 21:29 --

tak jo, pokud to tam překopíruju, hodí to tam zas několik chyb..

-- 29 kvě 2015, 21:43 --

Bude vadit když to všechno hodím do jednoho? Akorát oddělím Listener od Main ?
Nic víc ? Ale je to obsáhlejší plugin.. ale asi jinak to nelze než holt riskovat že se to jednou za minutu bugne..


Zpět na „Off topic“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 13 hostů