/ / Vyvolanie metódy na inštancii namiesto triedy, ktorá nepracuje so statickým typom - java, static, minecraft, bukkit

Volanie metódy na inštanciu namiesto triedy, ktorá nepracuje so statickým typom - java, static, minecraft, bukkit

V súčasnej dobe sa snažím vytvoriť plugin a môžem prekonať chybu, ktorá mi nedovolí zavolať metódu, pretože musí byť statická pre niečo, čo sa stane v metóde.

Takto som tento problém vyriešil pomocou: package.Main main = new package.Main();.

Teraz je problém, s ktorým mi zostáva, že keď skutočne nazveme metódu pomocou main.method(); hovorí, že vyššie uvedený kód musí byť statický, keď to urobím, potom vráti túto chybu do konzoly.

org.bukkit.command.CommandException: Unhandled exception executing command "devmode" in plugin DevelopmentMode v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:621) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1079) [craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:939) [craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:37) [craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:9) [craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit.jar:git-Bukkit-e91aed8]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.7.0_71]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.7.0_71]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19) [craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:676) [craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:335) [craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:632) [craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:540) [craftbukkit.jar:git-Bukkit-e91aed8]
at java.lang.Thread.run(Unknown Source) [?:1.7.0_71]
Caused by: java.lang.ExceptionInInitializerError
at package.commands.devModeClickCommands.Main(devModeClickCommands.java:22) ~[?:?]
at package.commands.devMode.onCommand(devMode.java:60) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Bukkit-e91aed8]
... 15 more
Caused by: java.lang.IllegalArgumentException: Plugin already initialized!
at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:98) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at package.devmode.Main.<init>(Main.java:12) ~[?:?]
at package.commands.activateDevMode.<clinit>(activateDevMode.java:20) ~[?:?]
at package.commands.devModeClickCommands.Main(devModeClickCommands.java:22) ~[?:?]
at package.commands.devMode.onCommand(devMode.java:60) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Bukkit-e91aed8]
... 15 more
Caused by: java.lang.IllegalStateException: Initial initialization
at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:101) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at package.devmode.Main.<init>(Main.java:12) ~[?:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)~[?:1.7.0_71]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)~[?:1.7.0_71]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.7.0_71]
at java.lang.Class.newInstance(Unknown Source) ~[?:1.7.0_71]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:52) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:328) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:288) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:719) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.Bukkit.reload(Bukkit.java:543) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:621) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:607) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:371) ~[craftbukkit.jar:git-Bukkit-e91aed8]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:336) ~[craftbukkit.jar:git-Bukkit-e91aed8]
... 3 more

Akákoľvek pomoc by bola úžasná, vďaka!

Upraviť - Vzorky kódu

Metóda, ktorú sa snažím volať, je v mojej hlavnej triede v samostatnom balíku:

public void newCountdown() {
System.out.print("I MADE IT!");
this.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
public void run() {
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
player.sendMessage("Hey");
}
}
}, 0, 20);
}

Tu sa snažím zavolať metódu vyššie z inej triedy v inom balíku.

public class class {

package.Main main = new package.Main();

public static void activate(Player player) {
main.newCountdown();
}

odpovede:

0 pre odpoveď č. 1

Na základe tohto riadku Caused by: java.lang.IllegalArgumentException: Plugin already initialized! plugin je už inicializovaný niekde inde, takže táto výzva by bola nadbytočná. Odhlásiť sa tohto vlákna vo fóre bukkit pre podrobnejšie vysvetlenie.