info.html 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <!-- Standard Meta -->
  5. <meta charset="utf-8" />
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
  8. <!-- Site Properties -->
  9. <title>Minecraft Server</title>
  10. <script src="https://code.jquery.com/jquery-3.1.1.min.js" crossorigin="anonymous"></script>
  11. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
  12. <script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
  13. <!-- MC Skin-->
  14. <link rel="stylesheet" href="./css/minecraft-skinviewer.css">
  15. </head>
  16. <body>
  17. <div class="ui clearing basic segment">
  18. <h2 class="ui dividing header"><img src="img/minecraft.png" style="height:45px;width:auto;" alt="Minecraft icon" />Minecraft Server</h2>
  19. </div>
  20. <div class="ui clearing basic segment">
  21. <div class="left floated ui basic segment">
  22. <span id="status" style="font-size:18px;">Server not started.</span>
  23. </div>
  24. <div class="right floated ui buttons">
  25. <button class="positive ui button" onclick="start()">Start</button>
  26. <button class="yellow ui button" onclick="stop()">Stop</button>
  27. <button class="orange ui button" onclick="kickall()">Kick All</button>
  28. <button class="negative ui button" onclick="kill()">Kill</button>
  29. </div>
  30. <br><br>
  31. <div class="ui divider"></div>
  32. </div>
  33. <div class="ui clearing basic segment">
  34. <div class="ui massive horizontal list">
  35. <div class="item">
  36. <img class="ui avatar image" style="border-radius: 0 !important" alt="cpu" src="/img/cpu.png">
  37. <div class="content">
  38. <p class="header">CPU Usage</p>
  39. <div class="description">
  40. <div class="ui small progress">
  41. <div class="bar"></div>
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. <div class="item">
  47. <img class="ui avatar image" style="border-radius: 0 !important" alt="ram" src="/img/ram.png">
  48. <div class="content">
  49. <p class="header">RAM Usage</p>
  50. <div class="description">
  51. <div class="ui small progress">
  52. <div class="bar"></div>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="ui divider"></div>
  59. </div>
  60. <div class="ui clearing basic segment">
  61. <div class="ui grid" id="userlist">
  62. <div class="sixteen wide column">
  63. <h3>Online player(s) (N/A)</h3>
  64. </div>
  65. </div>
  66. </div>
  67. </body>
  68. <script>
  69. updateInfo();
  70. var currentOnlineUser = [];
  71. setInterval(function() {
  72. updateInfo()
  73. }, 5000);
  74. function start() {
  75. $("#status").text("Starting...");
  76. $.get("start");
  77. }
  78. function stop() {
  79. $("#status").text("Stopping...");
  80. $.get("stop");
  81. }
  82. function kickall() {
  83. $.get("kickall");
  84. }
  85. function kill() {
  86. $("#status").text("Killing...");
  87. $.get("kill");
  88. }
  89. function updateInfo() {
  90. $.get("serverinfo", function(data) {
  91. if (data.IsRunning) {
  92. $("#status").text("Started.");
  93. } else {
  94. $("#status").text("Stopped.");
  95. }
  96. $("#userlist").html(`
  97. <div class="sixteen wide column">
  98. <h3>Online player(s) (` + data.Info.online + `/` + data.Info.max + `)</h3>
  99. </div>
  100. `)
  101. if (data.Info.sample == null) {
  102. $("#userlist").html(`
  103. <div class="four wide column">
  104. <div class="ui massive horizontal list">
  105. <div class="item">
  106. <div class="content">
  107. <p>No one here :(</p>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. `)
  113. return
  114. }
  115. if (data.Info.sample.length == 0) {
  116. $("#userlist").html(`
  117. <div class="four wide column">
  118. <div class="ui massive horizontal list">
  119. <div class="item">
  120. <div class="content">
  121. <p>No one here :(</p>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. `)
  127. return
  128. }
  129. if (data.Info.sample == currentOnlineUser) {
  130. return
  131. }
  132. $.each(data.Info.sample, function(i, item) {
  133. $("#userlist").append(`
  134. <div class="four wide column">
  135. <div class="ui massive horizontal list">
  136. <div class="item">
  137. <div class="ui avatar image">
  138. <div class="mc-face-viewer-8x" style="background-image:url('/skin/` + item.uuid + `.png');width:64px"></div>
  139. </div>
  140. <div class="content">
  141. <p>` + item.name + `</p>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. `)
  147. })
  148. });
  149. }
  150. </script>
  151. </html>