Stránka 1 z 3

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

Napsal: 28 kvě 2015, 17:25
od kamikatze
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");
    }
}

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

Napsal: 28 kvě 2015, 17:53
od Mike8748

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

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

Napsal: 28 kvě 2015, 21:06
od kamikatze
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]

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

Napsal: 29 kvě 2015, 08:19
od Mike8748
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

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

Napsal: 29 kvě 2015, 13:52
od kamikatze
a nemusí extendovat Java Plugin ?

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

Napsal: 29 kvě 2015, 14:54
od Mike8748
extendovat JavaPlugin bude jen tvoje třída Main, ostatní ne

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

Napsal: 29 kvě 2015, 16:39
od Aishak
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é.

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

Napsal: 29 kvě 2015, 20:56
od kamikatze
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 ?

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

Napsal: 29 kvě 2015, 21:23
od Mike8748
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

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

Napsal: 29 kvě 2015, 21:25
od kamikatze
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..