reschiram Geschrieben 3. Juni 2015 Share Geschrieben 3. Juni 2015 (bearbeitet) 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 bearbeitet 3. Juni 2015 von reschiram Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
boomer41 Geschrieben 3. Juni 2015 Share Geschrieben 3. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 3. Juni 2015 Autor Share Geschrieben 3. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Yuki Geschrieben 4. Juni 2015 Share Geschrieben 4. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 4. Juni 2015 Autor Share Geschrieben 4. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Yuki Geschrieben 4. Juni 2015 Share Geschrieben 4. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Baustein Geschrieben 4. Juni 2015 Share Geschrieben 4. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Yuki Geschrieben 4. Juni 2015 Share Geschrieben 4. Juni 2015 (bearbeitet) 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 bearbeitet 4. Juni 2015 von Yuki Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 5. Juni 2015 Autor Share Geschrieben 5. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Headshooter Geschrieben 5. Juni 2015 Share Geschrieben 5. Juni 2015 (bearbeitet) Benutz den code-spoiler. Das lässt deinen Code viel übersichtlicher darstellen bearbeitet 5. Juni 2015 von Headshooter Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
boomer41 Geschrieben 5. Juni 2015 Share Geschrieben 5. Juni 2015 (bearbeitet) 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. bearbeitet 5. Juni 2015 von boomer41 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 5. Juni 2015 Autor Share Geschrieben 5. Juni 2015 (bearbeitet) 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"); } } bearbeitet 5. Juni 2015 von boomer41 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
boomer41 Geschrieben 5. Juni 2015 Share Geschrieben 5. Juni 2015 Ja. Und ich hab dir mal den CodeTag eingefügt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 6. Juni 2015 Autor Share Geschrieben 6. Juni 2015 das hat allerdings das resultat der gleichen fehler meldung Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Baustein Geschrieben 7. Juni 2015 Share Geschrieben 7. Juni 2015 Was steht denn in Zeile 134 deiner Main-Klasse? Liebe Grüße, Baustein Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 7. Juni 2015 Autor Share Geschrieben 7. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Baustein Geschrieben 7. Juni 2015 Share Geschrieben 7. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 9. Juni 2015 Autor Share Geschrieben 9. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Baustein Geschrieben 9. Juni 2015 Share Geschrieben 9. Juni 2015 Welche der Dateien ist es denn? Liebe Grüße, Baustein Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 9. Juni 2015 Autor Share Geschrieben 9. Juni 2015 die beiden plugins + javacode ich hatte Zeit da hab ich einfach ein zweites hinterhergeworfen wie ich oben aber auch schon gesagt habe Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
boomer41 Geschrieben 10. Juni 2015 Share Geschrieben 10. Juni 2015 Du willst uns also verkaufen, dass du ein 50KB Plugin aus 10 MB Source generierst? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 11. Juni 2015 Autor Share Geschrieben 11. Juni 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 zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
boomer41 Geschrieben 11. Juni 2015 Share Geschrieben 11. Juni 2015 Können groß sein? Das ist nicht groß. 10KB Code sind das im Maximum für alles. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
reschiram Geschrieben 11. Juni 2015 Autor Share Geschrieben 11. Juni 2015 okey danke dann hab ich halt zu viel hochgeladen na und?? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden