Explorar el Código

Web UI now partially useable

AY hace 4 años
padre
commit
b0923851b1

BIN
__debug_bin


+ 9 - 0
command.go

@@ -0,0 +1,9 @@
+package main
+
+import "net/http"
+
+func SendCommand(w http.ResponseWriter, r *http.Request) {
+	command, _ := mv(r, "command", false)
+	MCServer.SendCommand(command)
+	sendJSONResponse(w, "OK")
+}

+ 15 - 0
mc_read.go

@@ -3,6 +3,7 @@ package main
 import (
 	"encoding/json"
 	"net/http"
+	"strconv"
 )
 
 func ReadLog(w http.ResponseWriter, r *http.Request) {
@@ -11,6 +12,20 @@ func ReadLog(w http.ResponseWriter, r *http.Request) {
 	sendJSONResponse(w, string(jsonData))
 }
 
+func ReadLogFrom(w http.ResponseWriter, r *http.Request) {
+	start, _ := mv(r, "start", false)
+	startInt, _ := strconv.Atoi(start)
+	end := MCServer.LenLog()
+
+	if startInt > MCServer.LenLog()-1 {
+		sendJSONResponse(w, "[]")
+	} else {
+		log := MCServer.ReadRangeLog(startInt, end)
+		jsonData, _ := json.Marshal(log)
+		sendJSONResponse(w, string(jsonData))
+	}
+}
+
 func ReadBanIP(w http.ResponseWriter, r *http.Request) {
 	config := Config.ReadAllBannedIPs()
 	jsonData, _ := json.Marshal(config)

+ 10 - 1
server/banned-players.json

@@ -1 +1,10 @@
-[]
+[
+  {
+    "uuid": "2561594a-c282-4ab7-b50c-068770cb9c6c",
+    "name": "HyperXraft",
+    "created": "2020-12-15 23:44:27 -0800",
+    "source": "Server",
+    "expires": "forever",
+    "reason": "Banned by an operator."
+  }
+]

+ 270 - 0
server/crash-reports/crash-2020-12-15_23.52.39-server.txt

@@ -0,0 +1,270 @@
+---- Minecraft Crash Report ----
+// Shall we play a game?
+
+Time: 15/12/2020 下午11:52
+Description: Watching Server
+
+java.lang.Error: Watchdog
+	at java.base@13.0.2/java.util.function.Predicate.lambda$and$0(Predicate.java:69)
+	at java.base@13.0.2/java.util.function.Predicate$$Lambda$1783/0x000000080104b440.test(Unknown Source)
+	at app//cgh.a(SourceFile:502)
+	at app//brx.a(SourceFile:748)
+	at app//bro.c(SourceFile:66)
+	at app//bri.c(SourceFile:22)
+	at app//aqa.g(SourceFile:812)
+	at app//aqa.a(SourceFile:590)
+	at app//bcw.j(SourceFile:76)
+	at app//aag.a(SourceFile:621)
+	at app//aag$$Lambda$3605/0x00000008013bf440.accept(Unknown Source)
+	at app//brx.a(SourceFile:561)
+	at app//aag.a(SourceFile:411)
+	at app//net.minecraft.server.MinecraftServer.b(SourceFile:871)
+	at app//zg.b(SourceFile:312)
+	at app//net.minecraft.server.MinecraftServer.a(SourceFile:811)
+	at app//net.minecraft.server.MinecraftServer.w(SourceFile:670)
+	at app//net.minecraft.server.MinecraftServer.a(SourceFile:257)
+	at app//net.minecraft.server.MinecraftServer$$Lambda$3339/0x00000008012d2040.run(Unknown Source)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+A detailed walkthrough of the error, its code path and all known details is as follows:
+---------------------------------------------------------------------------------------
+
+-- Head --
+Thread: Server Watchdog
+Stacktrace:
+	at java.base@13.0.2/java.util.function.Predicate.lambda$and$0(Predicate.java:69)
+	at java.base@13.0.2/java.util.function.Predicate$$Lambda$1783/0x000000080104b440.test(Unknown Source)
+	at app//cgh.a(SourceFile:502)
+	at app//brx.a(SourceFile:748)
+	at app//bro.c(SourceFile:66)
+	at app//bri.c(SourceFile:22)
+	at app//aqa.g(SourceFile:812)
+	at app//aqa.a(SourceFile:590)
+	at app//bcw.j(SourceFile:76)
+	at app//aag.a(SourceFile:621)
+	at app//aag$$Lambda$3605/0x00000008013bf440.accept(Unknown Source)
+	at app//brx.a(SourceFile:561)
+	at app//aag.a(SourceFile:411)
+	at app//net.minecraft.server.MinecraftServer.b(SourceFile:871)
+	at app//zg.b(SourceFile:312)
+	at app//net.minecraft.server.MinecraftServer.a(SourceFile:811)
+	at app//net.minecraft.server.MinecraftServer.w(SourceFile:670)
+	at app//net.minecraft.server.MinecraftServer.a(SourceFile:257)
+
+-- Thread Dump --
+Details:
+	Threads: "Reference Handler" daemon prio=10 Id=2 RUNNABLE
+	at java.base@13.0.2/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
+	at java.base@13.0.2/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
+	at java.base@13.0.2/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)
+
+
+"Finalizer" daemon prio=8 Id=3 WAITING on java.lang.ref.ReferenceQueue$Lock@667be97b
+	at java.base@13.0.2/java.lang.Object.wait(Native Method)
+	-  waiting on java.lang.ref.ReferenceQueue$Lock@667be97b
+	at java.base@13.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
+	at java.base@13.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
+	at java.base@13.0.2/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)
+
+
+"Signal Dispatcher" daemon prio=9 Id=4 RUNNABLE
+
+
+"Common-Cleaner" daemon prio=8 Id=11 TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@68bc1bc4
+	at java.base@13.0.2/java.lang.Object.wait(Native Method)
+	-  waiting on java.lang.ref.ReferenceQueue$Lock@68bc1bc4
+	at java.base@13.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
+	at java.base@13.0.2/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+	at java.base@13.0.2/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)
+
+
+"Worker-Bootstrap-6" daemon prio=5 Id=20 WAITING on java.util.concurrent.ForkJoinPool@6c83820b
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@6c83820b
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Timer hack thread" daemon prio=5 Id=22 TIMED_WAITING
+	at java.base@13.0.2/java.lang.Thread.sleep(Native Method)
+	at app//x$6.run(SourceFile:636)
+
+
+"Worker-Main-8" daemon prio=5 Id=23 WAITING on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-9" daemon prio=5 Id=24 WAITING on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-10" daemon prio=5 Id=26 WAITING on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-11" daemon prio=5 Id=27 WAITING on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-12" daemon prio=5 Id=28 WAITING on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-13" daemon prio=5 Id=29 TIMED_WAITING on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:276)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1624)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-14" daemon prio=5 Id=25 WAITING on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@298111ff
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Snooper Timer" daemon prio=5 Id=31 WAITING on java.util.TaskQueue@10080585
+	at java.base@13.0.2/java.lang.Object.wait(Native Method)
+	-  waiting on java.util.TaskQueue@10080585
+	at java.base@13.0.2/java.lang.Object.wait(Object.java:326)
+	at java.base@13.0.2/java.util.TimerThread.mainLoop(Timer.java:527)
+	at java.base@13.0.2/java.util.TimerThread.run(Timer.java:506)
+
+
+"Server thread" prio=5 Id=30 RUNNABLE
+	at java.base@13.0.2/java.util.function.Predicate.lambda$and$0(Predicate.java:69)
+	at java.base@13.0.2/java.util.function.Predicate$$Lambda$1783/0x000000080104b440.test(Unknown Source)
+	at app//cgh.a(SourceFile:502)
+	at app//brx.a(SourceFile:748)
+	at app//bro.c(SourceFile:66)
+	at app//bri.c(SourceFile:22)
+	at app//aqa.g(SourceFile:812)
+	at app//aqa.a(SourceFile:590)
+	...
+
+
+"Server console handler" daemon prio=5 Id=32 RUNNABLE (in native)
+	at java.base@13.0.2/java.io.FileInputStream.readBytes(Native Method)
+	at java.base@13.0.2/java.io.FileInputStream.read(FileInputStream.java:273)
+	at java.base@13.0.2/java.io.BufferedInputStream.read1(BufferedInputStream.java:283)
+	at java.base@13.0.2/java.io.BufferedInputStream.read(BufferedInputStream.java:344)
+	-  locked java.io.BufferedInputStream@18625e7b
+	at java.base@13.0.2/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:297)
+	at java.base@13.0.2/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
+	at java.base@13.0.2/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
+	-  locked java.io.InputStreamReader@680114a6
+	at java.base@13.0.2/java.io.InputStreamReader.read(InputStreamReader.java:185)
+	...
+
+
+"DestroyJavaVM" prio=5 Id=34 RUNNABLE
+
+
+"ObjectCleanerThread" daemon prio=1 Id=35 TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@49aeeeb0
+	at java.base@13.0.2/java.lang.Object.wait(Native Method)
+	-  waiting on java.lang.ref.ReferenceQueue$Lock@49aeeeb0
+	at java.base@13.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
+	at app//io.netty.util.internal.ObjectCleaner$1.run(ObjectCleaner.java:54)
+	at app//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+"Netty Server IO #0" daemon prio=5 Id=36 RUNNABLE
+	at java.base@13.0.2/sun.nio.ch.KQueue.poll(Native Method)
+	at java.base@13.0.2/sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:122)
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
+	-  locked sun.nio.ch.Util$2@19daee2d
+	-  locked sun.nio.ch.KQueueSelectorImpl@1341faeb
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
+	at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:756)
+	at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:411)
+	at app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+"Server Watchdog" daemon prio=5 Id=39 RUNNABLE
+	at java.management@13.0.2/sun.management.ThreadImpl.dumpThreads0(Native Method)
+	at java.management@13.0.2/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:502)
+	at java.management@13.0.2/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:490)
+	at app//zj.run(SourceFile:49)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+"Netty Server IO #1" daemon prio=5 Id=40 RUNNABLE
+	at java.base@13.0.2/sun.nio.ch.KQueue.poll(Native Method)
+	at java.base@13.0.2/sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:122)
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
+	-  locked sun.nio.ch.Util$2@73057801
+	-  locked sun.nio.ch.KQueueSelectorImpl@4de0d3bf
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
+	at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:756)
+	at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:411)
+	at app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+"Netty Server IO #2" daemon prio=5 Id=49 RUNNABLE
+	at java.base@13.0.2/sun.nio.ch.KQueue.poll(Native Method)
+	at java.base@13.0.2/sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:122)
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
+	-  locked sun.nio.ch.Util$2@385e7a8
+	-  locked sun.nio.ch.KQueueSelectorImpl@1f0fd391
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
+	at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:756)
+	at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:411)
+	at app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+
+Stacktrace:
+	at zj.run(SourceFile:65)
+	at java.base/java.lang.Thread.run(Thread.java:830)
+
+-- Performance stats --
+Details:
+	Random tick rate: 3
+	Level stats: ResourceKey[minecraft:dimension / minecraft:overworld]: players: 1, entities: 25436 [minecraft:tnt:24870,minecraft:item:300,minecraft:pig:44,minecraft:chicken:35,minecraft:cow:28], block_entities: 42 [minecraft:mob_spawner:22,minecraft:chest:17,minecraft:beehive:3], block_ticks: 1252, fluid_ticks: 77, chunk_source: ServerChunkCache: 2545,
+ResourceKey[minecraft:dimension / minecraft:the_nether]: players: 0, entities: 0 [], block_entities: 0 [], block_ticks: 0, fluid_ticks: 0, chunk_source: ServerChunkCache: 0,
+ResourceKey[minecraft:dimension / minecraft:the_end]: players: 0, entities: 0 [], block_entities: 0 [], block_ticks: 0, fluid_ticks: 0, chunk_source: ServerChunkCache: 0
+
+-- System Details --
+Details:
+	Minecraft Version: 1.16.4
+	Minecraft Version ID: 1.16.4
+	Operating System: Mac OS X (x86_64) version 10.16
+	Java Version: 13.0.2, Oracle Corporation
+	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation
+	Memory: 450505064 bytes (429 MB) / 1073741824 bytes (1024 MB) up to 1073741824 bytes (1024 MB)
+	CPUs: 8
+	JVM Flags: 2 total; -Xmx1024M -Xms1024M
+	Player Count: 1 / 99; [aah['Alanyeung'/1326, l='ServerLevel[world]', x=13.69, y=103.62, z=12.43]]
+	Data Packs: vanilla
+	Is Modded: Unknown (can't tell)
+	Type: Dedicated Server (map_server.txt)

+ 349 - 0
server/crash-reports/crash-2020-12-15_23.57.22-server.txt

@@ -0,0 +1,349 @@
+---- Minecraft Crash Report ----
+// Who set us up the TNT?
+
+Time: 15/12/2020 下午11:57
+Description: Watching Server
+
+java.lang.Error: Watchdog
+	at app//brx.a(SourceFile:209)
+	at app//brz.a(SourceFile:128)
+	at app//brx.d(SourceFile:204)
+	at app//brx.d_(SourceFile:408)
+	at app//brp.a(SourceFile:164)
+	at app//aag.a(SourceFile:1031)
+	at app//brx.a(SourceFile:573)
+	at app//bcw.k(SourceFile:100)
+	at app//bcw.j(SourceFile:88)
+	at app//aag.a(SourceFile:621)
+	at app//aag$$Lambda$3614/0x00000008013bf840.accept(Unknown Source)
+	at app//brx.a(SourceFile:561)
+	at app//aag.a(SourceFile:411)
+	at app//net.minecraft.server.MinecraftServer.b(SourceFile:871)
+	at app//zg.b(SourceFile:312)
+	at app//net.minecraft.server.MinecraftServer.a(SourceFile:811)
+	at app//net.minecraft.server.MinecraftServer.w(SourceFile:670)
+	at app//net.minecraft.server.MinecraftServer.a(SourceFile:257)
+	at app//net.minecraft.server.MinecraftServer$$Lambda$3356/0x00000008012d8040.run(Unknown Source)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+A detailed walkthrough of the error, its code path and all known details is as follows:
+---------------------------------------------------------------------------------------
+
+-- Head --
+Thread: Server Watchdog
+Stacktrace:
+	at app//brx.a(SourceFile:209)
+	at app//brz.a(SourceFile:128)
+	at app//brx.d(SourceFile:204)
+	at app//brx.d_(SourceFile:408)
+	at app//brp.a(SourceFile:164)
+	at app//aag.a(SourceFile:1031)
+	at app//brx.a(SourceFile:573)
+	at app//bcw.k(SourceFile:100)
+	at app//bcw.j(SourceFile:88)
+	at app//aag.a(SourceFile:621)
+	at app//aag$$Lambda$3614/0x00000008013bf840.accept(Unknown Source)
+	at app//brx.a(SourceFile:561)
+	at app//aag.a(SourceFile:411)
+	at app//net.minecraft.server.MinecraftServer.b(SourceFile:871)
+	at app//zg.b(SourceFile:312)
+	at app//net.minecraft.server.MinecraftServer.a(SourceFile:811)
+	at app//net.minecraft.server.MinecraftServer.w(SourceFile:670)
+	at app//net.minecraft.server.MinecraftServer.a(SourceFile:257)
+
+-- Thread Dump --
+Details:
+	Threads: "Reference Handler" daemon prio=10 Id=2 RUNNABLE
+	at java.base@13.0.2/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
+	at java.base@13.0.2/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
+	at java.base@13.0.2/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)
+
+
+"Finalizer" daemon prio=8 Id=3 WAITING on java.lang.ref.ReferenceQueue$Lock@1eac37f4
+	at java.base@13.0.2/java.lang.Object.wait(Native Method)
+	-  waiting on java.lang.ref.ReferenceQueue$Lock@1eac37f4
+	at java.base@13.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
+	at java.base@13.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
+	at java.base@13.0.2/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)
+
+
+"Signal Dispatcher" daemon prio=9 Id=4 RUNNABLE
+
+
+"Common-Cleaner" daemon prio=8 Id=11 TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@106bca51
+	at java.base@13.0.2/java.lang.Object.wait(Native Method)
+	-  waiting on java.lang.ref.ReferenceQueue$Lock@106bca51
+	at java.base@13.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
+	at java.base@13.0.2/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+	at java.base@13.0.2/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)
+
+
+"Worker-Bootstrap-1" daemon prio=5 Id=15 WAITING on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Bootstrap-3" daemon prio=5 Id=17 WAITING on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Bootstrap-4" daemon prio=5 Id=19 TIMED_WAITING on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:276)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1624)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Bootstrap-6" daemon prio=5 Id=20 WAITING on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Bootstrap-5" daemon prio=5 Id=18 WAITING on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Bootstrap-7" daemon prio=5 Id=21 WAITING on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@14545c84
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Timer hack thread" daemon prio=5 Id=22 TIMED_WAITING
+	at java.base@13.0.2/java.lang.Thread.sleep(Native Method)
+	at app//x$6.run(SourceFile:636)
+
+
+"Worker-Main-8" daemon prio=5 Id=23 WAITING on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-9" daemon prio=5 Id=24 WAITING on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-10" daemon prio=5 Id=26 WAITING on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-11" daemon prio=5 Id=27 WAITING on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-12" daemon prio=5 Id=28 TIMED_WAITING on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:276)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1624)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-13" daemon prio=5 Id=29 WAITING on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Worker-Main-14" daemon prio=5 Id=25 WAITING on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.ForkJoinPool@5156c06a
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
+	at java.base@13.0.2/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
+
+
+"Snooper Timer" daemon prio=5 Id=31 WAITING on java.util.TaskQueue@2e3a5e23
+	at java.base@13.0.2/java.lang.Object.wait(Native Method)
+	-  waiting on java.util.TaskQueue@2e3a5e23
+	at java.base@13.0.2/java.lang.Object.wait(Object.java:326)
+	at java.base@13.0.2/java.util.TimerThread.mainLoop(Timer.java:527)
+	at java.base@13.0.2/java.util.TimerThread.run(Timer.java:506)
+
+
+"Server thread" prio=5 Id=30 RUNNABLE
+	at app//brx.a(SourceFile:209)
+	at app//brz.a(SourceFile:128)
+	at app//brx.d(SourceFile:204)
+	at app//brx.d_(SourceFile:408)
+	at app//brp.a(SourceFile:164)
+	at app//aag.a(SourceFile:1031)
+	at app//brx.a(SourceFile:573)
+	at app//bcw.k(SourceFile:100)
+	...
+
+
+"Server console handler" daemon prio=5 Id=33 RUNNABLE (in native)
+	at java.base@13.0.2/java.io.FileInputStream.readBytes(Native Method)
+	at java.base@13.0.2/java.io.FileInputStream.read(FileInputStream.java:273)
+	at java.base@13.0.2/java.io.BufferedInputStream.read1(BufferedInputStream.java:283)
+	at java.base@13.0.2/java.io.BufferedInputStream.read(BufferedInputStream.java:344)
+	-  locked java.io.BufferedInputStream@60cd30f7
+	at java.base@13.0.2/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:297)
+	at java.base@13.0.2/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
+	at java.base@13.0.2/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
+	-  locked java.io.InputStreamReader@564bf016
+	at java.base@13.0.2/java.io.InputStreamReader.read(InputStreamReader.java:185)
+	...
+
+
+"DestroyJavaVM" prio=5 Id=34 RUNNABLE
+
+
+"ObjectCleanerThread" daemon prio=1 Id=35 TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@31793f25
+	at java.base@13.0.2/java.lang.Object.wait(Native Method)
+	-  waiting on java.lang.ref.ReferenceQueue$Lock@31793f25
+	at java.base@13.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
+	at app//io.netty.util.internal.ObjectCleaner$1.run(ObjectCleaner.java:54)
+	at app//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+"Netty Server IO #0" daemon prio=5 Id=36 RUNNABLE
+	at java.base@13.0.2/sun.nio.ch.KQueue.poll(Native Method)
+	at java.base@13.0.2/sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:122)
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
+	-  locked sun.nio.ch.Util$2@4dceb46f
+	-  locked sun.nio.ch.KQueueSelectorImpl@448d7fa9
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
+	at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:756)
+	at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:411)
+	at app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+"IO-Worker-15" prio=5 Id=37 TIMED_WAITING on java.util.concurrent.SynchronousQueue$TransferStack@4d4ffc6e
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.SynchronousQueue$TransferStack@4d4ffc6e
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:235)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:462)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1053)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
+	...
+
+
+"IO-Worker-16" prio=5 Id=38 TIMED_WAITING on java.util.concurrent.SynchronousQueue$TransferStack@4d4ffc6e
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.SynchronousQueue$TransferStack@4d4ffc6e
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:235)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:462)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1053)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
+	...
+
+
+"Server Watchdog" daemon prio=5 Id=39 RUNNABLE
+	at java.management@13.0.2/sun.management.ThreadImpl.dumpThreads0(Native Method)
+	at java.management@13.0.2/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:502)
+	at java.management@13.0.2/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:490)
+	at app//zj.run(SourceFile:49)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+"Netty Server IO #1" daemon prio=5 Id=40 RUNNABLE
+	at java.base@13.0.2/sun.nio.ch.KQueue.poll(Native Method)
+	at java.base@13.0.2/sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:122)
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
+	-  locked sun.nio.ch.Util$2@353762f5
+	-  locked sun.nio.ch.KQueueSelectorImpl@d62d5f0
+	at java.base@13.0.2/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
+	at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:756)
+	at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:411)
+	at app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
+	at java.base@13.0.2/java.lang.Thread.run(Thread.java:830)
+
+
+"IO-Worker-18" prio=5 Id=44 TIMED_WAITING on java.util.concurrent.SynchronousQueue$TransferStack@4d4ffc6e
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.SynchronousQueue$TransferStack@4d4ffc6e
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:235)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:462)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1053)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
+	...
+
+
+"IO-Worker-17" prio=5 Id=45 TIMED_WAITING on java.util.concurrent.SynchronousQueue$TransferStack@4d4ffc6e
+	at java.base@13.0.2/jdk.internal.misc.Unsafe.park(Native Method)
+	-  waiting on java.util.concurrent.SynchronousQueue$TransferStack@4d4ffc6e
+	at java.base@13.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:235)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:462)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361)
+	at java.base@13.0.2/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1053)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
+	at java.base@13.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
+	...
+
+
+
+Stacktrace:
+	at zj.run(SourceFile:65)
+	at java.base/java.lang.Thread.run(Thread.java:830)
+
+-- Performance stats --
+Details:
+	Random tick rate: 3
+	Level stats: ResourceKey[minecraft:dimension / minecraft:overworld]: players: 1, entities: 25055 [minecraft:tnt:24371,minecraft:item:492,minecraft:zombie:26,minecraft:skeleton:21,minecraft:creeper:21], block_entities: 32 [minecraft:mob_spawner:19,minecraft:chest:11,minecraft:beehive:2], block_ticks: 92, fluid_ticks: 102, chunk_source: ServerChunkCache: 2115,
+ResourceKey[minecraft:dimension / minecraft:the_nether]: players: 0, entities: 0 [], block_entities: 0 [], block_ticks: 0, fluid_ticks: 0, chunk_source: ServerChunkCache: 0,
+ResourceKey[minecraft:dimension / minecraft:the_end]: players: 0, entities: 0 [], block_entities: 0 [], block_ticks: 0, fluid_ticks: 0, chunk_source: ServerChunkCache: 0
+
+-- System Details --
+Details:
+	Minecraft Version: 1.16.4
+	Minecraft Version ID: 1.16.4
+	Operating System: Mac OS X (x86_64) version 10.16
+	Java Version: 13.0.2, Oracle Corporation
+	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation
+	Memory: 141194704 bytes (134 MB) / 1073741824 bytes (1024 MB) up to 1073741824 bytes (1024 MB)
+	CPUs: 8
+	JVM Flags: 2 total; -Xmx1024M -Xms1024M
+	Player Count: 1 / 99; [aah['Alanyeung'/8217, l='ServerLevel[world]', x=8.74, y=75.00, z=0.70]]
+	Data Packs: vanilla
+	Is Modded: Unknown (can't tell)
+	Type: Dedicated Server (map_server.txt)

BIN
server/logs/2020-12-15-1.log.gz


BIN
server/logs/2020-12-15-2.log.gz


BIN
server/logs/2020-12-15-3.log.gz


BIN
server/logs/2020-12-15-4.log.gz


BIN
server/logs/2020-12-15-5.log.gz


BIN
server/logs/2020-12-15-6.log.gz


BIN
server/logs/2020-12-15-7.log.gz


+ 25 - 45
server/logs/latest.log

@@ -1,45 +1,25 @@
-[19:37:48] [main/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
-[19:37:49] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
-[19:37:49] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
-[19:37:49] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
-[19:37:49] [main/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
-[19:37:49] [main/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
-[19:37:49] [main/INFO]: Reloading ResourceManager: Default
-[19:37:51] [Worker-Main-12/INFO]: Loaded 7 recipes
-[19:37:51] [Worker-Main-12/INFO]: Loaded 927 advancements
-[19:37:55] [Server thread/INFO]: Starting minecraft server version 1.16.4
-[19:37:55] [Server thread/INFO]: Loading properties
-[19:37:55] [Server thread/INFO]: Default game type: CREATIVE
-[19:37:55] [Server thread/INFO]: Generating keypair
-[19:37:56] [Server thread/INFO]: Starting Minecraft server on *:25565
-[19:37:56] [Server thread/INFO]: Using default channel type
-[19:37:56] [Server thread/INFO]: Preparing level "world"
-[19:37:56] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
-[19:37:59] [Server thread/INFO]: Preparing spawn area: 0%
-[19:37:59] [Server thread/INFO]: Preparing spawn area: 0%
-[19:37:59] [Server thread/INFO]: Preparing spawn area: 0%
-[19:37:59] [Server thread/INFO]: Preparing spawn area: 0%
-[19:37:59] [Server thread/INFO]: Preparing spawn area: 0%
-[19:37:59] [Server thread/INFO]: Preparing spawn area: 0%
-[19:37:59] [Server thread/INFO]: Preparing spawn area: 0%
-[19:38:00] [Server thread/INFO]: Preparing spawn area: 2%
-[19:38:00] [Server thread/INFO]: Preparing spawn area: 98%
-[19:38:07] [Server thread/INFO]: Time elapsed: 10746 ms
-[19:38:07] [Server thread/INFO]: Done (10.976s)! For help, type "help"
-[19:38:13] [User Authenticator #1/INFO]: UUID of player Alanyeung is 3d1c0ed1-d4d0-42ae-ac5e-a7557d5a6c4f
-[19:38:13] [Server thread/INFO]: Alanyeung[/127.0.0.1:57730] logged in with entity id 236 at (37.49792217994828, 78.46557030936223, 18.210075527457793)
-[19:38:13] [Server thread/INFO]: Alanyeung joined the game
-[19:38:21] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2003ms or 40 ticks behind
-[19:38:23] [Server thread/INFO]: Stopping the server
-[19:38:23] [Server thread/INFO]: Stopping server
-[19:38:23] [Server thread/INFO]: Saving players
-[19:38:23] [Server thread/INFO]: Saving worlds
-[19:38:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
-[19:38:26] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
-[19:38:26] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether
-[19:38:26] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
-[19:38:26] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end
-[19:38:26] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
-[19:38:26] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
-[19:38:26] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
-[19:38:26] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
+[00:00:03] [Server thread/INFO]: Starting minecraft server version 1.16.4
+[00:00:04] [Server thread/INFO]: Loading properties
+[00:00:04] [Server thread/INFO]: Default game type: CREATIVE
+[00:00:04] [Server thread/INFO]: Generating keypair
+[00:00:04] [Server thread/INFO]: Starting Minecraft server on *:25565
+[00:00:04] [Server thread/INFO]: Using default channel type
+[00:00:06] [Server thread/INFO]: Preparing level "world"
+[00:00:06] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:11] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:12] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:12] [Server thread/INFO]: Preparing spawn area: 0%
+[00:00:13] [Server thread/INFO]: Preparing spawn area: 83%
+[00:00:30] [Server thread/INFO]: Time elapsed: 23716 ms
+[00:00:30] [Server thread/INFO]: Done (23.981s)! For help, type "help"

+ 1 - 1
server/server.properties

@@ -1,5 +1,5 @@
 #Minecraft server properties
-#Tue Dec 15 19:37:48 PST 2020
+#Tue Dec 15 23:59:54 PST 2020
 enable-jmx-monitoring=false
 rcon.port=25575
 level-seed=

+ 1 - 1
server/usercache.json

@@ -1 +1 @@
-[{"name":"Alanyeung","uuid":"3d1c0ed1-d4d0-42ae-ac5e-a7557d5a6c4f","expiresOn":"2021-01-15 19:38:13 -0800"}]
+[{"name":"Alanyeung","uuid":"3d1c0ed1-d4d0-42ae-ac5e-a7557d5a6c4f","expiresOn":"2021-01-15 23:56:00 -0800"},{"name":"HyperXraft","uuid":"2561594a-c282-4ab7-b50c-068770cb9c6c","expiresOn":"2021-01-15 23:44:27 -0800"}]

BIN
server/world/DIM-1/data/raids.dat


BIN
server/world/DIM1/data/raids_end.dat


BIN
server/world/data/raids.dat


BIN
server/world/level.dat


BIN
server/world/level.dat_old


BIN
server/world/playerdata/3d1c0ed1-d4d0-42ae-ac5e-a7557d5a6c4f.dat


BIN
server/world/playerdata/3d1c0ed1-d4d0-42ae-ac5e-a7557d5a6c4f.dat_old


BIN
server/world/poi/r.0.0.mca


BIN
server/world/region/r.-1.-1.mca


BIN
server/world/region/r.-1.0.mca


BIN
server/world/region/r.0.-1.mca


BIN
server/world/region/r.0.0.mca


+ 1 - 1
server/world/stats/3d1c0ed1-d4d0-42ae-ac5e-a7557d5a6c4f.json

@@ -1 +1 @@
-{"stats":{"minecraft:mined":{"minecraft:grass":1,"minecraft:grass_block":1,"minecraft:oak_log":20,"minecraft:oak_sapling":1,"minecraft:birch_leaves":4,"minecraft:oak_leaves":37},"minecraft:picked_up":{"minecraft:stick":3,"minecraft:apple":1,"minecraft:andesite":7,"minecraft:creeper_spawn_egg":64,"minecraft:gravel":10,"minecraft:oak_log":24,"minecraft:diorite":2,"minecraft:gunpowder":7,"minecraft:oak_sapling":13,"minecraft:redstone":9,"minecraft:dirt":167,"minecraft:cobblestone":91},"minecraft:custom":{"minecraft:time_since_rest":9388,"minecraft:play_one_minute":22753,"minecraft:crouch_one_cm":104,"minecraft:damage_taken":1525,"minecraft:sprint_one_cm":16087,"minecraft:walk_one_cm":38621,"minecraft:deaths":6,"minecraft:walk_under_water_one_cm":3758,"minecraft:sneak_time":170,"minecraft:aviate_one_cm":131205,"minecraft:jump":177,"minecraft:damage_dealt":48,"minecraft:leave_game":17,"minecraft:time_since_death":9354,"minecraft:walk_on_water_one_cm":4661,"minecraft:fall_one_cm":7378,"minecraft:fly_one_cm":49285},"minecraft:killed_by":{"minecraft:creeper":2,"minecraft:wolf":2},"minecraft:used":{"minecraft:creeper_spawn_egg":23,"minecraft:oak_log":94,"minecraft:lever":7,"minecraft:tnt":275,"minecraft:oak_sapling":2}},"DataVersion":2584}
+{"stats":{"minecraft:used":{"minecraft:creeper_spawn_egg":23,"minecraft:oak_log":94,"minecraft:lever":12,"minecraft:tnt":371,"minecraft:oak_sapling":2},"minecraft:killed_by":{"minecraft:creeper":2,"minecraft:wolf":2},"minecraft:custom":{"minecraft:time_since_rest":14961,"minecraft:play_one_minute":28326,"minecraft:crouch_one_cm":104,"minecraft:damage_taken":1525,"minecraft:sprint_one_cm":17183,"minecraft:walk_one_cm":40994,"minecraft:deaths":6,"minecraft:walk_under_water_one_cm":3758,"minecraft:sneak_time":201,"minecraft:aviate_one_cm":131205,"minecraft:jump":205,"minecraft:damage_dealt":48,"minecraft:leave_game":19,"minecraft:time_since_death":14927,"minecraft:walk_on_water_one_cm":4661,"minecraft:fall_one_cm":7378,"minecraft:fly_one_cm":95775},"minecraft:picked_up":{"minecraft:stick":5,"minecraft:apple":1,"minecraft:andesite":7,"minecraft:creeper_spawn_egg":64,"minecraft:lever":2,"minecraft:gravel":10,"minecraft:oak_log":26,"minecraft:diorite":2,"minecraft:gunpowder":7,"minecraft:oak_sapling":16,"minecraft:redstone":9,"minecraft:dirt":200,"minecraft:cobblestone":91},"minecraft:mined":{"minecraft:grass":1,"minecraft:grass_block":1,"minecraft:oak_log":20,"minecraft:oak_sapling":1,"minecraft:birch_leaves":4,"minecraft:oak_leaves":37}},"DataVersion":2584}

+ 4 - 0
web.go

@@ -17,7 +17,11 @@ func webServer(Dir string, Port string) {
 	http.HandleFunc("/kickall", KickAllMCServer)
 
 	//SYSTEM FUNCTION
+	http.HandleFunc("/sendcommand", SendCommand)
+
 	http.HandleFunc("/log", ReadLog)
+	http.HandleFunc("/log/from", ReadLogFrom)
+
 	http.HandleFunc("/ban-ip", ReadBanIP)
 	http.HandleFunc("/ban-player", ReadBanPlayer)
 	http.HandleFunc("/eula", ReadEULA)

+ 28 - 5
webroot/info.html

@@ -21,13 +21,13 @@
     </div>
     <div class="ui clearing basic segment">
         <div class="left floated ui basic segment">
-            <span style="font-size:18px;">Service started at 2020-01-01T00:00:00.</span>
+            <span id="status" style="font-size:18px;">Service started at 2020-01-01T00:00:00.</span>
         </div>
         <div class="right floated ui buttons">
-            <button class="positive ui button">Start</button>
-            <button class="yellow ui button">Stop</button>
-            <button class="orange ui button">Kick All</button>
-            <button class="negative ui button">Kill</button>
+            <button class="positive ui button" onclick="start()">Start</button>
+            <button class="yellow ui button" onclick="stop()">Stop</button>
+            <button class="orange ui button" onclick="kickall()">Kick All</button>
+            <button class="negative ui button" onclick="kill()">Kill</button>
         </div>
         <br><br>
         <div class="ui divider"></div>
@@ -82,5 +82,28 @@
     </div>
 
 </body>
+<script>
+    function start() {
+        $.get("start", function(data) {
+            $("#status").html("Starting...");
+        });
+    }
+
+    function stop() {
+        $.get("stop", function(data) {
+            $("#status").html("Stopping...");
+        });
+    }
+
+    function kickall() {
+        $.get("kickall");
+    }
+
+    function kill() {
+        $.get("kill", function(data) {
+            $("#status").html("Killing...");
+        });
+    }
+</script>
 
 </html>

+ 36 - 3
webroot/log.html

@@ -18,14 +18,47 @@
 <body>
     <div class="ui form">
         <div class="field">
-            <textarea rows="30"></textarea>
+            <textarea id="log" rows="30"></textarea>
         </div>
     </div>
     <br>
     <div class="ui fluid action input">
-        <input type="text" placeholder="Command here (e.g. give @a minecraft:wooden_axe)">
-        <div class="ui button">Send</div>
+        <input type="text" id="command" placeholder="Command here (e.g. give @a minecraft:wooden_axe)">
+        <div class="ui button" onclick="sendCmd()">Send</div>
     </div>
 </body>
+<script>
+    var currentLogID = 0;
+
+    function refreshLog() {
+        $.get("log/from?start=" + currentLogID, function(data) {
+            $.each(data, function(index, value) {
+                $("#log").append(value.Log + "\n");
+                currentLogID = value.ID + 1;
+            });
+            $('#log').scrollTop($('#log')[0].scrollHeight);
+        });
+    }
+    setInterval(function() {
+        refreshLog()
+    }, 3000);
+
+    function sendCmd() {
+        var cmdVal = $("#command").val();
+        $.get("sendcommand?command=" + cmdVal, function(data) {
+            $("#log").append("Command: [" + cmdVal + "] sent\n");
+            $("#command").val("");
+            //increase the refresh speed immd after sending command
+            setTimeout(refreshLog, 1000);
+        });
+    }
+
+    $('#command').on("keypress", function(e) {
+        if (e.keyCode == 13) {
+            sendCmd();
+            return false; // prevent the button click from happening
+        }
+    });
+</script>
 
 </html>