Solved "Smoke"

Discussion in 'Plugin Development' started by Xogos1997, Jun 24, 2016.

Thread Status:
Not open for further replies.
  1. Offline

    Xogos1997

    Hi, i just try make smoke. But if i throw the smoke 6x or 9x the server crash. can you help me?

    Code:
        public void SmokeGrenade(final Location loc)
        {
            final Timer timer = new Timer();
            timer.schedule(new TimerTask() 
            {
                int neco = 0;
                public void run() 
                {                       
                    neco ++;
                    if(neco == 100) timer.cancel();
                    SpawnFireWork(loc,Type.BALL_LARGE,Color.GRAY,Color.WHITE);       
                    SpawnFireWork(loc,Type.BALL_LARGE,Color.WHITE,Color.GRAY);   
                    SpawnFireWork(loc,Type.BALL_LARGE,Color.GRAY,Color.WHITE);   
                   
                }
            }, 200,200);
        }
    
        @EventHandler(priority = EventPriority.NORMAL)   
        public void onHit(ProjectileHitEvent event)
        {       
            if(event.getEntity() instanceof LingeringPotion) 
            {
                LingeringPotion arrow = (LingeringPotion) event.getEntity();
                Location loc = arrow.getLocation();
                loc.setY(loc.getY() + 2);
                SmokeGrenade(loc);
            }
        }
    
    crash log

    Code:
    ---- Minecraft Crash Report ----
    // I just don't know what went wrong :(
    
    Time: 24.6.16 17:07
    Description: Exception in server tick loop
    
    java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextNode(Unknown Source)
        at java.util.HashMap$KeyIterator.next(Unknown Source)
        at net.minecraft.server.v1_9_R2.EntityTracker.updatePlayers(EntityTracker.java:173)
        at net.minecraft.server.v1_9_R2.MinecraftServer.D(MinecraftServer.java:746)
        at net.minecraft.server.v1_9_R2.DedicatedServer.D(DedicatedServer.java:360)
        at net.minecraft.server.v1_9_R2.MinecraftServer.C(MinecraftServer.java:639)
        at net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:543)
        at java.lang.Thread.run(Unknown Source)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- System Details --
    Details:
        Minecraft Version: 1.9.4
        Operating System: Windows 10 (amd64) version 10.0
        Java Version: 1.8.0_91, Oracle Corporation
        Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
        Memory: 403027072 bytes (384 MB) / 585105408 bytes (558 MB) up to 1398276096 bytes (1333 MB)
        JVM Flags: 0 total; 
        IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
        CraftBukkit Information: 
       Running: CraftBukkit version git-Bukkit-4e19de1 (MC: 1.9.4) (Implementing API version 1.9.4-R0.1-SNAPSHOT) false
       Plugins: { NametagHide v1.4 de.r3sist3nt.NametagHide [r3sist3nt], csgo v0.1 Xogos.main [],}
       Warnings: DEFAULT
       Reload Count: 0
       Threads: { WAITING Chunk I/O Executor Thread-1: [sun.misc.Unsafe.park(Native Method), java.util.concurrent.locks.LockSupport.park(Unknown Source), java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source), java.util.concurrent.LinkedBlockingQueue.take(Unknown Source), java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source), java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source), java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source), java.lang.Thread.run(Unknown Source)], WAITING Reference Handler: [java.lang.Object.wait(Native Method), java.lang.Object.wait(Unknown Source), java.lang.ref.Reference.tryHandlePending(Unknown Source), java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)], TIMED_WAITING File IO Thread: [java.lang.Thread.sleep(Native Method), net.minecraft.server.v1_9_R2.FileIOThread.c(SourceFile:51), net.minecraft.server.v1_9_R2.FileIOThread.run(SourceFile:30), java.lang.Thread.run(Unknown Source)], TIMED_WAITING Timer-16: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], RUNNABLE Netty Server IO #0: [sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method), sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source), sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source), sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source), sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source), sun.nio.ch.SelectorImpl.select(Unknown Source), io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622), io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310), io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116), java.lang.Thread.run(Unknown Source)], TIMED_WAITING Timer-9: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], RUNNABLE Server console handler: [org.fusesource.jansi.internal.Kernel32.ReadConsoleInputW(Native Method), org.fusesource.jansi.internal.Kernel32.readConsoleInputHelper(Kernel32.java:761), org.fusesource.jansi.internal.Kernel32.readConsoleKeyInput(Kernel32.java:794), org.fusesource.jansi.internal.WindowsSupport.readConsoleInput(WindowsSupport.java:97), org.bukkit.craftbukkit.libs.jline.WindowsTerminal.readConsoleInput(WindowsTerminal.java:215), org.bukkit.craftbukkit.libs.jline.WindowsTerminal.access$000(WindowsTerminal.java:55), org.bukkit.craftbukkit.libs.jline.WindowsTerminal$1.read(WindowsTerminal.java:157), org.bukkit.craftbukkit.libs.jline.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:169), org.bukkit.craftbukkit.libs.jline.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:137), org.bukkit.craftbukkit.libs.jline.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:246), org.bukkit.craftbukkit.libs.jline.internal.InputStreamReader.read(InputStreamReader.java:261), org.bukkit.craftbukkit.libs.jline.internal.InputStreamReader.read(InputStreamReader.java:198), org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.readCharacter(ConsoleReader.java:2145), org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.readLine(ConsoleReader.java:2349), net.minecraft.server.v1_9_R2.DedicatedServer$2.run(DedicatedServer.java:80)], WAITING Java2D Disposer: [java.lang.Object.wait(Native Method), java.lang.ref.ReferenceQueue.remove(Unknown Source), java.lang.ref.ReferenceQueue.remove(Unknown Source), sun.java2d.Disposer.run(Unknown Source), java.lang.Thread.run(Unknown Source)], RUNNABLE Signal Dispatcher: [], TIMED_WAITING Timer-14: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], TIMED_WAITING Timer-10: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], RUNNABLE Thread-5: [org.fusesource.jansi.internal.Kernel32.GetConsoleScreenBufferInfo(Native Method), org.fusesource.jansi.WindowsAnsiOutputStream.getConsoleInfo(WindowsAnsiOutputStream.java:103), org.fusesource.jansi.WindowsAnsiOutputStream.processEraseLine(WindowsAnsiOutputStream.java:167), org.fusesource.jansi.AnsiOutputStream.processEscapeCommand(AnsiOutputStream.java:253), org.fusesource.jansi.AnsiOutputStream.write(AnsiOutputStream.java:125), java.io.FilterOutputStream.write(Unknown Source), sun.nio.cs.StreamEncoder.writeBytes(Unknown Source), sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source), sun.nio.cs.StreamEncoder.implFlush(Unknown Source), sun.nio.cs.StreamEncoder.flush(Unknown Source), java.io.OutputStreamWriter.flush(Unknown Source), org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.flush(ConsoleReader.java:976), org.bukkit.craftbukkit.v1_9_R2.util.TerminalConsoleWriterThread.run(TerminalConsoleWriterThread.java:35), java.lang.Thread.run(Unknown Source)], TIMED_WAITING Snooper Timer: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], RUNNABLE Netty Server IO #3: [sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method), sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source), sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source), sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source), sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source), sun.nio.ch.SelectorImpl.select(Unknown Source), io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622), io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310), io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116), java.lang.Thread.run(Unknown Source)], TIMED_WAITING Server Infinisleeper: [java.lang.Thread.sleep(Native Method), net.minecraft.server.v1_9_R2.DedicatedServer$1.run(DedicatedServer.java:55)], TIMED_WAITING Timer-13: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], WAITING NonBlockingInputStreamThread: [java.lang.Object.wait(Native Method), org.bukkit.craftbukkit.libs.jline.internal.NonBlockingInputStream.run(NonBlockingInputStream.java:278), java.lang.Thread.run(Unknown Source)], TIMED_WAITING Timer-11: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], TIMED_WAITING Timer-15: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], TIMED_WAITING Server Watchdog: [java.lang.Thread.sleep(Native Method), net.minecraft.server.v1_9_R2.ThreadWatchdog.run(SourceFile:73), java.lang.Thread.run(Unknown Source)], TIMED_WAITING Timer-8: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], RUNNABLE DestroyJavaVM: [], TIMED_WAITING Timer-17: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], WAITING Finalizer: [java.lang.Object.wait(Native Method), java.lang.ref.ReferenceQueue.remove(Unknown Source), java.lang.ref.ReferenceQueue.remove(Unknown Source), java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)], TIMED_WAITING Timer-12: [java.lang.Object.wait(Native Method), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], RUNNABLE Attach Listener: [], RUNNABLE Netty Server IO #2: [sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method), sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source), sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source), sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source), sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source), sun.nio.ch.SelectorImpl.select(Unknown Source), io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622), io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310), io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116), java.lang.Thread.run(Unknown Source)], RUNNABLE Netty Server IO #1: [sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method), sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source), sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source), sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source), sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source), sun.nio.ch.SelectorImpl.select(Unknown Source), io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622), io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310), io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116), java.lang.Thread.run(Unknown Source)], RUNNABLE Server thread: [java.lang.Thread.dumpThreads(Native Method), java.lang.Thread.getAllStackTraces(Unknown Source), org.bukkit.craftbukkit.v1_9_R2.CraftCrashReport.call(CraftCrashReport.java:30), net.minecraft.server.v1_9_R2.CrashReportSystemDetails.a(SourceFile:78), net.minecraft.server.v1_9_R2.CrashReport.h(CrashReport.java:126), net.minecraft.server.v1_9_R2.CrashReport.<init>(CrashReport.java:33), net.minecraft.server.v1_9_R2.MinecraftServer.run(MinecraftServer.java:560), java.lang.Thread.run(Unknown Source)],}
       Recent tasks from 1634-1664{NametagHide:org.mcstats.Metrics$1@31,}
        Profiler Position: N/A (disabled)
        Player Count: 1 / 32; [EntityPlayer['Xogos1997'/22, l='Dust2', x=-37,53, y=3,00, z=78,53](Xogos1997 at -37.5273036336047,3.0,78.5337572958411)]
        Is Modded: Definitely; Server brand changed to 'CraftBukkit'
        Type: Dedicated Server (map_server.txt)
    
     
  2. Offline

    I Al Istannen

    @Xogos1997
    Code:
            final Timer timer = new Timer();
            timer.schedule(new TimerTask()
            {
                int neco = 0;
                public void run()
                {                     
                    neco ++;
                    if(neco == 100) timer.cancel();
                    SpawnFireWork(loc,Type.BALL_LARGE,Color.GRAY,Color.WHITE);     
                    SpawnFireWork(loc,Type.BALL_LARGE,Color.WHITE,Color.GRAY); 
                    SpawnFireWork(loc,Type.BALL_LARGE,Color.GRAY,Color.WHITE); 
                  
                }
            }, 200,200);
    Bukkit is not thread safe!

    Use the bukkit scheduler and don't schedule an async task there, if you access ANY method of the Bukkit API. There are some thread safe ones, but they are extremly rare.
     
    Xogos1997 likes this.
  3. Offline

    Xogos1997

    Ah... thx for info + link, i will try ;)

    Thank you very much :) i finaly complet it :D i know im slow, but this.is.my.first(); time i worked with "bukkit scheduler" :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 26, 2016
  4. Offline

    I Al Istannen

    @Xogos1997
    No problem :)
    Glad you managed!
    It is great if you were able to understand and use the scheduler after the wiki entry, no need to apologize!

    Good luck with your project!
     
    Xogos1997 likes this.
  5. Offline

    Zombie_Striker

    @Xogos1997
    If your problem has been solved, mark this thread as solved.
     
  6. Offline

    Xogos1997

Thread Status:
Not open for further replies.

Share This Page