reschiram Posted June 3, 2015 Share Posted June 3, 2015 (edited) Hey this is my programm code: Event: package me.reschiram; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.entity.Snowball; import org.bukkit.entity.Squid; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.ProjectileHitEvent; public class Event implements Listener{ mainclass plugin; Squid s; public Event(mainclass plugin){ this.plugin = plugin; plugin.getServer().getPluginManager().registerEvents(this, plugin); } //Tintenfischrakete @EventHandler public void Tintenfischrakete(ProjectileHitEvent e){ Player p = (Player) e.getEntity().getShooter(); for (int a = 0; a<plugin.Welten.size(); a++){ int b = a+2; plugin.Welten.add((World) plugin.getConfig().get("Welt" + ); if (p.getWorld() == plugin.Welten.get(a)){ if (e.getEntity() instanceof Snowball){ final Location ls = e.getEntity().getLocation(); final Location l = e.getEntity().getLocation(); l.setY(l.getY() + 30); s = (Squid) p.getWorld().spawnEntity(l, EntityType.SQUID); plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, new Runnable(){ @Override public void run() { l.setY(l.getY() -0.1); s.teleport(l); if ( l.getBlock() == ls.getBlock()){ e.getEntity().getWorld().createExplosion(l, 5, true); p.sendMessage("aa"); } } }, 10, 10); } } } } } Mainclass: package me.reschiram; import java.util.ArrayList; 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.entity.Squid; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; public class mainclass extends JavaPlugin{ //Variablen ArrayList<World> Welten = new ArrayList<World>(); Event e; public void onEnable() { initconfig(); new Event(this); } //Config public void initconfig(){ this.reloadConfig(); this.getConfig().options().header("Bitte nicht dranrumschreiben"); this.getConfig().addDefault("Welt1", "world"); this.getConfig().options().copyDefaults(true); this.saveConfig(); System.out.println(ChatColor.BOLD + "[bettwars+] " + ChatColor.WHITE + "succesfully (re)loaded"); } mainclass plugin; @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player p = null; if(sender instanceof Player){ p = (Player) sender; } if (cmd.getName().equalsIgnoreCase("addworld")){ if (p.hasPermission("Bettwars-plus.*")){ if(args.length==0){ Welten.add(p.getWorld()); p.sendMessage("true"); return true; }else { p.sendMessage("false"); return false; } } } return false; } } My Problem: I trought a snowball on the ground an a Squid appears 30 Blocks over it, but for a few seconds it moves it legs or how there are called and then the holle server crasched! There were no explosion! I found this error Log latter: Could not pass event ProjectileHitEvent to Bettwars-plus v1.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:297) ~[craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.craftbukkit.v1_8_R2.event.CraftEventFactory.callProjectileHitEvent(CraftEventFactory.java:729) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.EntityProjectile.t_(EntityProjectile.java:157) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.World.entityJoinedWorld(World.java:1420) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.World.g(World.java:1398) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.World.tickEntities(World.java:1269) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.WorldServer.tickEntities(WorldServer.java:560) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:724) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:336) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:626) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:534) [craftbukkit.jar:git-Bukkit-0a645a2] at java.lang.Thread.run(Unknown Source) [?:1.8.0_31] Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) ~[?:1.8.0_31] at java.util.Arrays.copyOf(Unknown Source) ~[?:1.8.0_31] at java.util.ArrayList.grow(Unknown Source) ~[?:1.8.0_31] at java.util.ArrayList.ensureExplicitCapacity(Unknown Source) ~[?:1.8.0_31] at java.util.ArrayList.ensureCapacityInternal(Unknown Source) ~[?:1.8.0_31] at java.util.ArrayList.add(Unknown Source) ~[?:1.8.0_31] at me.reschiram.Event.Tintenfischrakete(Event.java:35) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_31] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_31] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_31] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:295) ~[craftbukkit.jar:git-Bukkit-0a645a2] ... 14 more Sorry for my bad english i am german and not good in english Edited June 3, 2015 by reschiram Link to comment Share on other sites More sharing options...
boomer41 Posted June 3, 2015 Share Posted June 3, 2015 Wenn du Deutscher bist darfst du gerne deinen Deutschen Text C&Pn. Kurz und Simpel: Dein Arbeitsspeicher für den Server ist zu knapp. Der ist nämlich voll. Link to comment Share on other sites More sharing options...
reschiram Posted June 3, 2015 Author Share Posted June 3, 2015 das heißt der Code ist richtig ich hab nur zu wenig RAM? Kamm ich die RAM Anforderung auch irgendwie senken? Trotzdem schon mal danke! Ich wollte halt nur das mir auch andere Leute helfen, die kein deutsch können damit ich möglichst schnell eine Antwort bekommen Link to comment Share on other sites More sharing options...
Yuki Posted June 4, 2015 Share Posted June 4, 2015 Hi, in deinem Crash-Log sind die 2 Zeilen für dich interessant: Could not pass event ProjectileHitEvent to Bettwars-plus v1.0 Caused by: java.lang.OutOfMemoryError: Java heap space Wieviel Speicher hast du denn zur Verfügung auf deinem Server und wieviel hast du deinem Bukkit zugewiesen? Du hast doch sicher eine Batch-Datei (.bat) welche du zum starten von deinem Server nutzt. In dieser steht etwas wie java -Xmx1024m -jar craftbukkit.jar Der Wert bei -Xmx ist der zugewiesene maximale Arbeitsspeicher. Hier solltest du mal schauen, ob du diesen entsprechend höher setzt. java -Xms512m -Xmx2048m -jar craftbukkit.jar Hier ist noch ein min Wert (-Xms) angegeben, mit welchem der Server mindestens Starten soll, auch das kann man mit angeben. Grundsätzlich kommt es immer darauf an, wieviele und welche Mods auf dem Server vorhanden sind. Teste einfach ein bischen. -Yuki Link to comment Share on other sites More sharing options...
reschiram Posted June 4, 2015 Author Share Posted June 4, 2015 Okey es liegt also nur am RAM! Danke! Ps: ich hab das nur auf meinem Testserver probiert nicht auf dem mit 8 GB RAM da müsste es ja dann eigentlich funktionieren oder? Aber vielen Dank Nur noch eine Frage: wie kann ich das Thema rausnehmen ? Da ja jetzt alles geklärt ist Link to comment Share on other sites More sharing options...
Yuki Posted June 4, 2015 Share Posted June 4, 2015 Hi, ich möchte jetzt nicht ausschließen, das es an deinem Plugin liegt, es kann gut sein, dass da etwas nicht ganz korrekt ist und deswegen der Speicher voll läuft, aber hier muß ich ehrlich zugeben das ich da nicht weiterhelfen kann. Ich hab zwar selbst eine zeitlang programmiert damals mit VB dann C#.NET und dann halt Scripting mit PHP, aber Java hat mich nie interessiert, daher blick ich bei dem Code oben nicht wirklich durch. Da müsste halt wirklich jemand drüber schauen, der hiervon Ahnung hat. Teste es einfach mal auf einem System mit mehr Speicher, dann siehst du ja, was passiert. Sollte es dort das gleiche Problem geben, wird es wohl an deinem Plugin liegen. -Yuki Link to comment Share on other sites More sharing options...
Baustein Posted June 4, 2015 Share Posted June 4, 2015 Was genau soll dein Plugin denn machen? Du schießt einen Pfeil, und 30 Blöcke über dem Ort, wo er aufkommt, soll ein Tintenfisch spawnen? Wenn das alles ist, habe ich das hier mal für dich geschrieben:https://minecraftforum.de/files/file/21-squidrocketjar/ Hier der Code: package me.baustein.squidrocket; import org.bukkit.Location; import org.bukkit.entity.EntityType; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin implements Listener { public void onEnable() { getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void onProjectileHit(ProjectileHitEvent e) { Location loc = e.getEntity().getLocation().add(0, 30, 0); loc.getWorld().spawnEntity(loc, EntityType.SQUID); } } Ich hoffe, ich habe deine Ansprüche richtig erkannt, ansonsten klär mich auf, sicherlich lässt sich das umsetzen. Liebe Grüße, Baustein Link to comment Share on other sites More sharing options...
Yuki Posted June 4, 2015 Share Posted June 4, 2015 (edited) Hi, das sieht ja um einiges einfacher aus und das versteh ich sogar, wenn man damit noch nix gemacht hat. Aber ich glaube, du hast die Explosion vergessen, die er oben in seinem Code noch drin hat. Sein Code: e.getEntity().getWorld().createExplosion(l, 5, true); Wenn ich das richtig sehe an der Position des Squid. -Yuki Edited June 4, 2015 by Yuki Link to comment Share on other sites More sharing options...
reschiram Posted June 5, 2015 Author Share Posted June 5, 2015 Also wen jemand einen Schneeball in einer bestimmten Welt wirft (als spezial Item von Bettwars gedacht) dann soll 30 Blöcke über ihm ein squid spawnen der sobald er wieder den Punkt wo der Ball aufkommt berührt explodiert Oh und wenn ich schon dabei bin ich arbeite nebenbei noch an einem anderem Plugin, wo auch etwas nicht funktioniert(es scheint ich bekomme nie was auf die reihe ). ich hab versuch ein Cops and Robbers Plugin zu machen was aber anscheinend auch nicht so ganz funktioniert hat . Dies ist der Error Log: [14:58:23 ERROR]: Error occurred while enabling CopsandRobbers v1.0 (Is it up to date?) java.lang.NoSuchMethodError: me.reschiram.Event.<init>(Lme/reschiram/main;)V at me.reschiram.main.onEnable(main.java:134) ~[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[c raftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader .java:327) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage r.java:404) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.craftbukkit.v1_8_R2.CraftServer.loadPlugin(CraftServer.jav a:341) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.craftbukkit.v1_8_R2.CraftServer.enablePlugins(CraftServer. java:313) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.craftbukkit.v1_8_R2.CraftServer.reload(CraftServer.java:72 5) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.Bukkit.reload(Bukkit.java:543) [craftbukkit.jar:git-Bukkit -0a645a2] at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java: 25) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:14 0) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServe r.java:625) [craftbukkit.jar:git-Bukkit-0a645a2] at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchServerCommand(Craf tServer.java:611) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.DedicatedServer.aN(DedicatedServer.java: 372) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:3 37) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:6 26) [craftbukkit.jar:git-Bukkit-0a645a2] at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java :534) [craftbukkit.jar:git-Bukkit-0a645a2] at java.lang.Thread.run(Unknown Source) [?:1.8.0_31] Dies ist onEnable (kurz gefasst): new Event(plugin); loadSpawn(); loadDeath(); loadJailkeeperspawn(); loadwinbutton(); loadWorld(); initconfig(); Das hier ist die Classe event(das was für den error log wichtig ist): package me.reschiram; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.Random; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.Sign; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.material.Button; public class Event implements Listener{ main plugin; WarpManager WarpMgr; ArrayList<Player> Winnes = new ArrayList<Player>(); public Event(main main) { try { this.plugin = main; main.getServer().getPluginManager().registerEvents(this, main); } finally { System.out.println("[bob] wurde nicht geladen"); } } Link to comment Share on other sites More sharing options...
Headshooter Posted June 5, 2015 Share Posted June 5, 2015 (edited) Benutz den code-spoiler. Das lässt deinen Code viel übersichtlicher darstellen Edited June 5, 2015 by Headshooter Link to comment Share on other sites More sharing options...
boomer41 Posted June 5, 2015 Share Posted June 5, 2015 (edited) Wie sieht deine Main klasse komplett aus? BTW Denk Daran dass die Packagenames dein plugin EINDEUTIG identifizieren sollen! Also me.reschiram ist NICHT eindeutig. me.reschiram.copsvsrobbers wäre eindeutig. Ohne das werden sich deine Klassen sehr schnell in die quere kommen. Edited June 5, 2015 by boomer41 Link to comment Share on other sites More sharing options...
reschiram Posted June 5, 2015 Author Share Posted June 5, 2015 (edited) h das war ein test okey ich werde das mal ausprobieren danke!! Oh und wie nutze ich den code-Spoiler Meinst du so?: package me.reschiram.copsvsrobbers; public class Event implements Listener{ main plugin; WarpManager WarpMgr; ArrayList<Player> Winnes = new ArrayList<Player>(); public Event(main main) { try { this.plugin = main; main.getServer().getPluginManager().registerEvents(this, main); } finally { System.out.println("[bob] wurde nicht geladen"); } } Edited June 5, 2015 by boomer41 Link to comment Share on other sites More sharing options...
boomer41 Posted June 5, 2015 Share Posted June 5, 2015 Ja. Und ich hab dir mal den CodeTag eingefügt. Link to comment Share on other sites More sharing options...
reschiram Posted June 6, 2015 Author Share Posted June 6, 2015 das hat allerdings das resultat der gleichen fehler meldung Link to comment Share on other sites More sharing options...
Baustein Posted June 7, 2015 Share Posted June 7, 2015 Was steht denn in Zeile 134 deiner Main-Klasse? Liebe Grüße, Baustein Link to comment Share on other sites More sharing options...
reschiram Posted June 7, 2015 Author Share Posted June 7, 2015 Ja genau das was mich verwirrt ich hab mir die Fehlermeldung durch gelesen und die hat immer auf diese eine Zeile verwiesen: new Event(plugin); (plugin ist eine Vraiable von Typ main(also imprenzip ist es das gleiche als würde ich this hinschreiben)) oder was ich auch probiert habe: new Event(this); Link to comment Share on other sites More sharing options...
Baustein Posted June 7, 2015 Share Posted June 7, 2015 Am besten, du schickst uns eine exportierte jar. Dann können wir uns schön mit Zeilenangaben selber einen Reim dazu machen Liebe Grüße, Baustein Link to comment Share on other sites More sharing options...
reschiram Posted June 9, 2015 Author Share Posted June 9, 2015 okey aber eine Sache er sagt mir "Du hast keine Berechtigung, diese Art von Dateien hochzuladen" also schick ich dir einen Dropbox-link aber echt vielen dank das ihr euch so viel Zeit für mich nehmt ) https://www.dropbox.com/sh/0l6ziixo89omie1/AAA3BnBXCjHxE0bPD0yjolkba?dl=0 HALLO??? Ist jemand da? Link to comment Share on other sites More sharing options...
Baustein Posted June 9, 2015 Share Posted June 9, 2015 Welche der Dateien ist es denn? Liebe Grüße, Baustein Link to comment Share on other sites More sharing options...
reschiram Posted June 9, 2015 Author Share Posted June 9, 2015 die beiden plugins + javacode ich hatte Zeit da hab ich einfach ein zweites hinterhergeworfen wie ich oben aber auch schon gesagt habe Link to comment Share on other sites More sharing options...
boomer41 Posted June 10, 2015 Share Posted June 10, 2015 Du willst uns also verkaufen, dass du ein 50KB Plugin aus 10 MB Source generierst? Link to comment Share on other sites More sharing options...
reschiram Posted June 11, 2015 Author Share Posted June 11, 2015 10MB code?? oha ich dachte es wäre weniger aber hey 2 Plugins in diesem code können schon groß sein. Ist halt der komplette Ordner da ich nicht wusste was wichtig ist, also halt alles(mit metadata settings und allem) Link to comment Share on other sites More sharing options...
boomer41 Posted June 11, 2015 Share Posted June 11, 2015 Können groß sein? Das ist nicht groß. 10KB Code sind das im Maximum für alles. Link to comment Share on other sites More sharing options...
reschiram Posted June 11, 2015 Author Share Posted June 11, 2015 okey danke dann hab ich halt zu viel hochgeladen na und?? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now