Browse Source

prepare for release

mloeschenkohl 3 năm trước cách đây
mục cha
commit
b7a2e92c3a
63 tập tin đã thay đổi với 2463 bổ sung1360 xóa
  1. 2 0
      all.txt
  2. 73 0
      configs/inv_data/survival/-1.329433148E9.snuvic
  3. 73 0
      configs/inv_data/survival/-1.839148068E9.snuvic
  4. 73 0
      configs/inv_data/survival/-1.868713057E9.snuvic
  5. 73 0
      configs/inv_data/survival/-1.890429792E9.snuvic
  6. 73 0
      configs/inv_data/survival/-3.7783286E7.snuvic
  7. 73 0
      configs/inv_data/survival/1.086995138E9.snuvic
  8. 73 0
      configs/inv_data/survival/1.094204588E9.snuvic
  9. 73 0
      configs/inv_data/survival/1.11345452E8.snuvic
  10. 73 0
      configs/inv_data/survival/1.277215069E9.snuvic
  11. 73 0
      configs/inv_data/survival/1.317736069E9.snuvic
  12. 73 0
      configs/inv_data/survival/1.468138155E9.snuvic
  13. 73 0
      configs/inv_data/survival/1.711359078E9.snuvic
  14. 73 0
      configs/inv_data/survival/1.767533467E9.snuvic
  15. 73 0
      configs/inv_data/survival/1.922602981E9.snuvic
  16. 73 0
      configs/inv_data/survival/2.051921072E9.snuvic
  17. 6 6
      configs/inv_data/survival/4.96921431E8.snuvic
  18. 73 0
      configs/inv_data/survival/6.11614352E8.snuvic
  19. 73 0
      configs/inv_data/survival/8.54089626E8.snuvic
  20. 73 0
      configs/inv_data/survival/8.96759775E8.snuvic
  21. 14 4
      configs/market_prices.snuvic
  22. 5 0
      configs/player_data/survival_data/-1.329433148E9.snuvic
  23. 4 0
      configs/player_data/survival_data/-1.839148068E9.snuvic
  24. 3 0
      configs/player_data/survival_data/-1.868713057E9.snuvic
  25. 4 0
      configs/player_data/survival_data/-1.890429792E9.snuvic
  26. 3 0
      configs/player_data/survival_data/-3.0552298E8.snuvic
  27. 5 0
      configs/player_data/survival_data/-3.5231995E7.snuvic
  28. 5 0
      configs/player_data/survival_data/-3.7783286E7.snuvic
  29. 4 0
      configs/player_data/survival_data/-5.18612191E8.snuvic
  30. 2 1
      configs/player_data/survival_data/1.086995138E9.snuvic
  31. 6 1
      configs/player_data/survival_data/1.094204588E9.snuvic
  32. 3 1
      configs/player_data/survival_data/1.11345452E8.snuvic
  33. 2 0
      configs/player_data/survival_data/1.277215069E9.snuvic
  34. 2 0
      configs/player_data/survival_data/1.317736069E9.snuvic
  35. 1 1
      configs/player_data/survival_data/1.468138155E9.snuvic
  36. 3 0
      configs/player_data/survival_data/1.547866928E9.snuvic
  37. 2 0
      configs/player_data/survival_data/1.711359078E9.snuvic
  38. 1 0
      configs/player_data/survival_data/1.767533467E9.snuvic
  39. 4 0
      configs/player_data/survival_data/2.051921072E9.snuvic
  40. 3 2
      configs/player_data/survival_data/4.96921431E8.snuvic
  41. 4 0
      configs/player_data/survival_data/6.11614352E8.snuvic
  42. 4 0
      configs/player_data/survival_data/8.54089626E8.snuvic
  43. 3 0
      configs/player_data/survival_data/8.96759775E8.snuvic
  44. 1 1
      configs/server.snuvic
  45. 7 8
      startscript.txt
  46. 36 0
      stop.txt
  47. 2 2
      survival/pumpkin.txt
  48. 111 143
      survival/survival.txt
  49. 37 44
      system/chat.txt
  50. 1 1
      system/chestshops.txt
  51. 225 309
      system/commands.txt
  52. 3 0
      system/doors.txt
  53. 1 0
      system/init.txt
  54. 32 15
      system/market.txt
  55. 273 248
      system/perms.txt
  56. 7 9
      system/scheduler.txt
  57. 0 124
      system/worldedit.txt
  58. 9 35
      test3.txt
  59. 4 32
      test4.txt
  60. 35 0
      test5.txt
  61. 0 0
      test6.txt
  62. 1 1
      utils/u_error.txt
  63. 269 372
      utils/u_general.txt

+ 2 - 0
all.txt

@@ -0,0 +1,2 @@
+script.start("startscript");
+term();

+ 73 - 0
configs/inv_data/survival/-1.329433148E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air"}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:air"}"
+head="{Count:1b,id:"minecraft:air"}"
+health=2.0
+hunger=6.0
+legs="{Count:1b,id:"minecraft:air"}"
+lvl=1.0
+offhand="{Count:1b,id:"minecraft:air"}"
+saturation=0.0
+slot-0.0="{Count:1b,id:"minecraft:stone_sword",tag:{Damage:0}}"
+slot-1.0="{Count:1b,id:"minecraft:stone_pickaxe",tag:{Damage:16}}"
+slot-10.0="{Count:1b,id:"minecraft:bone"}"
+slot-11.0="{Count:2b,id:"minecraft:granite"}"
+slot-12.0="{Count:1b,id:"minecraft:air"}"
+slot-13.0="{Count:1b,id:"minecraft:air"}"
+slot-14.0="{Count:1b,id:"minecraft:air"}"
+slot-15.0="{Count:1b,id:"minecraft:air"}"
+slot-16.0="{Count:1b,id:"minecraft:air"}"
+slot-17.0="{Count:1b,id:"minecraft:air"}"
+slot-18.0="{Count:1b,id:"minecraft:air"}"
+slot-19.0="{Count:1b,id:"minecraft:air"}"
+slot-2.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:7}}"
+slot-20.0="{Count:1b,id:"minecraft:air"}"
+slot-21.0="{Count:8b,id:"minecraft:oak_planks"}"
+slot-22.0="{Count:1b,id:"minecraft:air"}"
+slot-23.0="{Count:3b,id:"minecraft:stick"}"
+slot-24.0="{Count:1b,id:"minecraft:air"}"
+slot-25.0="{Count:1b,id:"minecraft:air"}"
+slot-26.0="{Count:1b,id:"minecraft:air"}"
+slot-27.0="{Count:4b,id:"minecraft:cornflower"}"
+slot-28.0="{Count:1b,id:"minecraft:air"}"
+slot-29.0="{Count:1b,id:"minecraft:air"}"
+slot-3.0="{Count:1b,id:"minecraft:crafting_table"}"
+slot-30.0="{Count:1b,id:"minecraft:air"}"
+slot-31.0="{Count:1b,id:"minecraft:air"}"
+slot-32.0="{Count:1b,id:"minecraft:air"}"
+slot-33.0="{Count:1b,id:"minecraft:air"}"
+slot-34.0="{Count:1b,id:"minecraft:air"}"
+slot-35.0="{Count:1b,id:"minecraft:air"}"
+slot-4.0="{Count:8b,id:"minecraft:cobblestone"}"
+slot-5.0="{Count:3b,id:"minecraft:coal"}"
+slot-6.0="{Count:1b,id:"minecraft:air"}"
+slot-7.0="{Count:1b,id:"minecraft:wooden_pickaxe",tag:{Damage:5}}"
+slot-8.0="{Count:4b,id:"minecraft:dirt"}"
+slot-9.0="{Count:2b,id:"minecraft:arrow"}"
+xp=0.11111114919185638

+ 73 - 0
configs/inv_data/survival/-1.839148068E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air"}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:air"}"
+head="{Count:1b,id:"minecraft:air"}"
+health=19.0
+hunger=12.0
+legs="{Count:1b,id:"minecraft:air"}"
+lvl=2.0
+offhand="{Count:1b,id:"minecraft:air"}"
+saturation=0.0
+slot-0.0="{Count:8b,id:"minecraft:wheat_seeds"}"
+slot-1.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:30}}"
+slot-10.0="{Count:3b,id:"minecraft:sticky_piston"}"
+slot-11.0="{Count:1b,id:"minecraft:repeater"}"
+slot-12.0="{Count:1b,id:"minecraft:stick"}"
+slot-13.0="{Count:3b,id:"minecraft:redstone"}"
+slot-14.0="{Count:6b,id:"minecraft:melon_slice"}"
+slot-15.0="{Count:10b,id:"minecraft:gold_ingot"}"
+slot-16.0="{Count:4b,id:"minecraft:iron_ingot"}"
+slot-17.0="{Count:1b,id:"minecraft:air"}"
+slot-18.0="{Count:1b,id:"minecraft:white_wool"}"
+slot-19.0="{Count:2b,id:"minecraft:leather"}"
+slot-2.0="{Count:7b,id:"minecraft:mutton"}"
+slot-20.0="{Count:2b,id:"minecraft:beef"}"
+slot-21.0="{Count:1b,id:"minecraft:pumpkin"}"
+slot-22.0="{Count:1b,id:"minecraft:air"}"
+slot-23.0="{Count:1b,id:"minecraft:air"}"
+slot-24.0="{Count:1b,id:"minecraft:stone_sword",tag:{Damage:8}}"
+slot-25.0="{Count:1b,id:"minecraft:air"}"
+slot-26.0="{Count:1b,id:"minecraft:air"}"
+slot-27.0="{Count:1b,id:"minecraft:air"}"
+slot-28.0="{Count:1b,id:"minecraft:air"}"
+slot-29.0="{Count:1b,id:"minecraft:air"}"
+slot-3.0="{Count:54b,id:"minecraft:melon_slice"}"
+slot-30.0="{Count:1b,id:"minecraft:melon_slice"}"
+slot-31.0="{Count:1b,id:"minecraft:air"}"
+slot-32.0="{Count:1b,id:"minecraft:air"}"
+slot-33.0="{Count:1b,id:"minecraft:air"}"
+slot-34.0="{Count:1b,id:"minecraft:air"}"
+slot-35.0="{Count:7b,id:"minecraft:sugar_cane"}"
+slot-4.0="{Count:25b,id:"minecraft:bamboo"}"
+slot-5.0="{Count:1b,id:"minecraft:white_bed"}"
+slot-6.0="{Count:1b,id:"minecraft:air"}"
+slot-7.0="{Count:1b,id:"minecraft:stone_pickaxe",tag:{Damage:9}}"
+slot-8.0="{Count:1b,id:"minecraft:wooden_pickaxe",tag:{Damage:8}}"
+slot-9.0="{Count:1b,id:"minecraft:jungle_planks"}"
+xp=0.2727273106575012

+ 73 - 0
configs/inv_data/survival/-1.868713057E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-0.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-1.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-10.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-11.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-12.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-13.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-14.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-15.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-16.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-17.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-2.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-24.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-3.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-9.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+feet="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+head="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+health=17.0
+hunger=14.0
+legs="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+lvl=12.0
+offhand="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+saturation=0.0
+slot-0.0="{Count:1b,id:"minecraft:iron_sword",tag:{Damage:54}}"
+slot-1.0="{Count:1b,id:"minecraft:iron_pickaxe",tag:{Damage:202}}"
+slot-10.0="{Count:1b,id:"minecraft:stick"}"
+slot-11.0="{Count:2b,id:"minecraft:torch"}"
+slot-12.0="{Count:1b,id:"minecraft:wheat"}"
+slot-13.0="{Count:30b,id:"minecraft:coal"}"
+slot-14.0="{Count:9b,id:"minecraft:beef"}"
+slot-15.0="{Count:22b,id:"minecraft:birch_planks"}"
+slot-16.0="{Count:1b,id:"minecraft:crafting_table"}"
+slot-17.0="{Count:2b,id:"minecraft:stripped_birch_log"}"
+slot-18.0="{Count:2b,id:"minecraft:cobblestone"}"
+slot-19.0="{Count:1b,id:"minecraft:bone"}"
+slot-2.0="{Count:1b,id:"minecraft:stone_shovel",tag:{Damage:26}}"
+slot-20.0="{Count:32b,id:"minecraft:sugar_cane"}"
+slot-21.0="{Count:1b,id:"minecraft:arrow"}"
+slot-22.0="{Count:9b,id:"minecraft:rotten_flesh"}"
+slot-23.0="{Count:1b,id:"minecraft:carrot"}"
+slot-24.0="{Count:1b,id:"minecraft:birch_boat"}"
+slot-25.0="{Count:8b,id:"minecraft:leather"}"
+slot-26.0="{Count:2b,id:"minecraft:cooked_mutton"}"
+slot-27.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-28.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-29.0="{Count:1b,id:"minecraft:stone_shovel",tag:{Damage:0}}"
+slot-3.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:93}}"
+slot-30.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-31.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-32.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-33.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-34.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-35.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-4.0="{Count:1b,id:"minecraft:stone_hoe",tag:{Damage:84}}"
+slot-5.0="{Count:2b,id:"minecraft:cooked_porkchop"}"
+slot-6.0="{Count:18b,id:"minecraft:cocoa_beans"}"
+slot-7.0="{Count:1b,id:"minecraft:cooked_beef"}"
+slot-8.0="{Count:19b,id:"minecraft:pumpkin"}"
+slot-9.0="{Count:1b,id:"minecraft:water_bucket"}"
+xp=0.8387094736099243

+ 73 - 0
configs/inv_data/survival/-1.890429792E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-0.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-1.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-10.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-11.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-12.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-13.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-14.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-15.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-16.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-17.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-2.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-24.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-3.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-9.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+feet="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+head="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+lvl=11.0
+offhand="{Count:1b,id:"minecraft:shield",tag:{Damage:37}}"
+saturation=1.8000001907348633
+slot-0.0="{Count:1b,id:"minecraft:iron_sword",tag:{Damage:87}}"
+slot-1.0="{Count:1b,id:"minecraft:iron_pickaxe",tag:{Damage:28}}"
+slot-10.0="{Count:28b,id:"minecraft:raw_copper"}"
+slot-11.0="{Count:1b,id:"minecraft:grass_block"}"
+slot-12.0="{Count:43b,id:"minecraft:oak_planks"}"
+slot-13.0="{Count:64b,id:"minecraft:dirt"}"
+slot-14.0="{Count:3b,id:"minecraft:birch_log"}"
+slot-15.0="{Count:17b,id:"minecraft:sugar_cane"}"
+slot-16.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:86}}"
+slot-17.0="{Count:1b,id:"minecraft:iron_chestplate",tag:{Damage:23}}"
+slot-18.0="{Count:6b,id:"minecraft:wheat_seeds"}"
+slot-19.0="{Count:64b,id:"minecraft:clay_ball"}"
+slot-2.0="{Count:1b,id:"minecraft:oak_boat"}"
+slot-20.0="{Count:64b,id:"minecraft:clay_ball"}"
+slot-21.0="{Count:64b,id:"minecraft:clay_ball"}"
+slot-22.0="{Count:64b,id:"minecraft:clay_ball"}"
+slot-23.0="{Count:24b,id:"minecraft:clay_ball"}"
+slot-24.0="{Count:1b,id:"minecraft:gravel"}"
+slot-25.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:78}}"
+slot-26.0="{Count:2b,id:"minecraft:rotten_flesh"}"
+slot-27.0="{Count:9b,id:"minecraft:gunpowder"}"
+slot-28.0="{Count:1b,id:"minecraft:emerald"}"
+slot-29.0="{Count:1b,id:"minecraft:leather"}"
+slot-3.0="{Count:1b,id:"minecraft:crafting_table"}"
+slot-30.0="{Count:1b,id:"minecraft:mossy_cobblestone"}"
+slot-31.0="{Count:1b,id:"minecraft:amethyst_shard"}"
+slot-32.0="{Count:1b,id:"minecraft:arrow"}"
+slot-33.0="{Count:1b,id:"minecraft:stone_hoe",tag:{Damage:0}}"
+slot-34.0="{Count:64b,id:"minecraft:cobblestone"}"
+slot-35.0="{Count:13b,id:"minecraft:coal"}"
+slot-4.0="{Count:1b,id:"minecraft:furnace"}"
+slot-5.0="{Count:4b,id:"minecraft:raw_iron"}"
+slot-6.0="{Count:1b,id:"minecraft:lava_bucket"}"
+slot-7.0="{Count:1b,id:"minecraft:spyglass"}"
+slot-8.0="{Count:14b,id:"minecraft:pumpkin_pie",tag:{display:{Lore:['{"text":"An almost whole pumpkin pie"}','{"text":"Herobrine has already eaten a piece."}'],Name:'{"text":"PumpkinMinusOneEighthCake"}'}}}"
+slot-9.0="{Count:6b,id:"minecraft:beef"}"
+xp=0.13793101906776428

+ 73 - 0
configs/inv_data/survival/-3.7783286E7.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:iron_chestplate",tag:{Damage:8}}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:iron_boots",tag:{Damage:8}}"
+head="{Count:1b,id:"minecraft:air"}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:air"}"
+lvl=18.0
+offhand="{Count:1b,id:"minecraft:shield",tag:{Damage:22}}"
+saturation=8.800000190734863
+slot-0.0="{Count:1b,id:"minecraft:diamond_sword",tag:{Damage:111}}"
+slot-1.0="{Count:1b,id:"minecraft:diamond_pickaxe",tag:{Damage:103}}"
+slot-10.0="{Count:1b,id:"minecraft:paper",tag:{display:{Name:'{"text":"5€ - Screenshote dieses Papier und makiere mich in"}'}}}"
+slot-11.0="{Count:6b,id:"minecraft:string"}"
+slot-12.0="{Count:14b,id:"minecraft:feather"}"
+slot-13.0="{Count:12b,id:"minecraft:white_wool"}"
+slot-14.0="{Count:1b,id:"minecraft:carrot"}"
+slot-15.0="{Count:4b,id:"minecraft:slime_ball"}"
+slot-16.0="{Count:10b,id:"minecraft:leather"}"
+slot-17.0="{Count:6b,id:"minecraft:paper"}"
+slot-18.0="{Count:1b,id:"minecraft:clock"}"
+slot-19.0="{Count:5b,id:"minecraft:stick"}"
+slot-2.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:32}}"
+slot-20.0="{Count:1b,id:"minecraft:crafting_table"}"
+slot-21.0="{Count:2b,id:"minecraft:oak_sapling"}"
+slot-22.0="{Count:15b,id:"minecraft:gold_nugget"}"
+slot-23.0="{Count:5b,id:"minecraft:wheat_seeds"}"
+slot-24.0="{Count:1b,id:"minecraft:enchanting_table"}"
+slot-25.0="{Count:1b,id:"minecraft:chicken"}"
+slot-26.0="{Count:6b,id:"minecraft:arrow"}"
+slot-27.0="{Count:64b,id:"minecraft:lapis_lazuli"}"
+slot-28.0="{Count:33b,id:"minecraft:coal"}"
+slot-29.0="{Count:6b,id:"minecraft:bone_meal"}"
+slot-3.0="{Count:64b,id:"minecraft:oak_planks"}"
+slot-30.0="{Count:3b,id:"minecraft:porkchop"}"
+slot-31.0="{Count:1b,id:"minecraft:flint_and_steel",tag:{Damage:0}}"
+slot-32.0="{Count:14b,id:"minecraft:mutton"}"
+slot-33.0="{Count:2b,id:"minecraft:furnace"}"
+slot-34.0="{Count:12b,id:"minecraft:diamond"}"
+slot-35.0="{Count:10b,id:"minecraft:raw_iron"}"
+slot-4.0="{Count:28b,id:"minecraft:oak_planks"}"
+slot-5.0="{Count:22b,id:"minecraft:cooked_porkchop"}"
+slot-6.0="{Count:18b,id:"minecraft:beef"}"
+slot-7.0="{Count:8b,id:"minecraft:cooked_chicken"}"
+slot-8.0="{Count:3b,id:"minecraft:iron_ingot"}"
+slot-9.0="{Count:1b,id:"minecraft:paper",tag:{display:{Name:'{"text":"deiner Insta-Story: lucas.ottersbach (:"}'}}}"
+xp=0.3846151828765869

+ 73 - 0
configs/inv_data/survival/1.086995138E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air"}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:air"}"
+head="{Count:1b,id:"minecraft:air"}"
+health=18.333332061767578
+hunger=16.0
+legs="{Count:1b,id:"minecraft:air"}"
+lvl=0.0
+offhand="{Count:1b,id:"minecraft:air"}"
+saturation=0.0
+slot-0.0="{Count:1b,id:"minecraft:wooden_axe",tag:{Damage:0}}"
+slot-1.0="{Count:1b,id:"minecraft:air"}"
+slot-10.0="{Count:1b,id:"minecraft:air"}"
+slot-11.0="{Count:1b,id:"minecraft:air"}"
+slot-12.0="{Count:1b,id:"minecraft:air"}"
+slot-13.0="{Count:1b,id:"minecraft:air"}"
+slot-14.0="{Count:1b,id:"minecraft:air"}"
+slot-15.0="{Count:1b,id:"minecraft:air"}"
+slot-16.0="{Count:1b,id:"minecraft:air"}"
+slot-17.0="{Count:1b,id:"minecraft:air"}"
+slot-18.0="{Count:1b,id:"minecraft:air"}"
+slot-19.0="{Count:1b,id:"minecraft:air"}"
+slot-2.0="{Count:1b,id:"minecraft:air"}"
+slot-20.0="{Count:1b,id:"minecraft:air"}"
+slot-21.0="{Count:1b,id:"minecraft:air"}"
+slot-22.0="{Count:1b,id:"minecraft:air"}"
+slot-23.0="{Count:1b,id:"minecraft:air"}"
+slot-24.0="{Count:1b,id:"minecraft:air"}"
+slot-25.0="{Count:1b,id:"minecraft:air"}"
+slot-26.0="{Count:1b,id:"minecraft:air"}"
+slot-27.0="{Count:1b,id:"minecraft:air"}"
+slot-28.0="{Count:1b,id:"minecraft:air"}"
+slot-29.0="{Count:1b,id:"minecraft:air"}"
+slot-3.0="{Count:1b,id:"minecraft:air"}"
+slot-30.0="{Count:1b,id:"minecraft:air"}"
+slot-31.0="{Count:1b,id:"minecraft:air"}"
+slot-32.0="{Count:1b,id:"minecraft:air"}"
+slot-33.0="{Count:1b,id:"minecraft:air"}"
+slot-34.0="{Count:1b,id:"minecraft:air"}"
+slot-35.0="{Count:1b,id:"minecraft:air"}"
+slot-4.0="{Count:1b,id:"minecraft:air"}"
+slot-5.0="{Count:1b,id:"minecraft:air"}"
+slot-6.0="{Count:1b,id:"minecraft:air"}"
+slot-7.0="{Count:1b,id:"minecraft:air"}"
+slot-8.0="{Count:1b,id:"minecraft:air"}"
+slot-9.0="{Count:1b,id:"minecraft:air"}"
+xp=0.0

+ 73 - 0
configs/inv_data/survival/1.094204588E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:iron_chestplate",tag:{Damage:220}}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:air"}"
+head="{Count:1b,id:"minecraft:iron_helmet",tag:{Damage:44}}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:iron_leggings",tag:{Damage:220}}"
+lvl=23.0
+offhand="{Count:1b,id:"minecraft:shield",tag:{Damage:91}}"
+saturation=0.0
+slot-0.0="{Count:1b,id:"minecraft:iron_axe",tag:{Damage:238}}"
+slot-1.0="{Count:1b,id:"minecraft:iron_pickaxe",tag:{Damage:49}}"
+slot-10.0="{Count:6b,id:"minecraft:bone"}"
+slot-11.0="{Count:4b,id:"minecraft:wheat_seeds"}"
+slot-12.0="{Count:1b,id:"minecraft:oak_boat"}"
+slot-13.0="{Count:1b,id:"minecraft:air"}"
+slot-14.0="{Count:1b,id:"minecraft:air"}"
+slot-15.0="{Count:3b,id:"minecraft:cooked_beef"}"
+slot-16.0="{Count:1b,id:"minecraft:air"}"
+slot-17.0="{Count:3b,id:"minecraft:arrow"}"
+slot-18.0="{Count:1b,id:"minecraft:air"}"
+slot-19.0="{Count:1b,id:"minecraft:air"}"
+slot-2.0="{Count:1b,id:"minecraft:flint_and_steel",tag:{Damage:9}}"
+slot-20.0="{Count:1b,id:"minecraft:air"}"
+slot-21.0="{Count:1b,id:"minecraft:air"}"
+slot-22.0="{Count:1b,id:"minecraft:air"}"
+slot-23.0="{Count:1b,id:"minecraft:air"}"
+slot-24.0="{Count:48b,id:"minecraft:oak_planks"}"
+slot-25.0="{Count:1b,id:"minecraft:air"}"
+slot-26.0="{Count:1b,id:"minecraft:air"}"
+slot-27.0="{Count:1b,id:"minecraft:air"}"
+slot-28.0="{Count:1b,id:"minecraft:air"}"
+slot-29.0="{Count:1b,id:"minecraft:air"}"
+slot-3.0="{Count:1b,id:"minecraft:crafting_table"}"
+slot-30.0="{Count:1b,id:"minecraft:air"}"
+slot-31.0="{Count:1b,id:"minecraft:air"}"
+slot-32.0="{Count:1b,id:"minecraft:stick"}"
+slot-33.0="{Count:1b,id:"minecraft:air"}"
+slot-34.0="{Count:1b,id:"minecraft:air"}"
+slot-35.0="{Count:1b,id:"minecraft:air"}"
+slot-4.0="{Count:2b,id:"minecraft:rotten_flesh"}"
+slot-5.0="{Count:1b,id:"minecraft:air"}"
+slot-6.0="{Count:1b,id:"minecraft:fishing_rod",tag:{Damage:1}}"
+slot-7.0="{Count:61b,id:"minecraft:carrot"}"
+slot-8.0="{Count:14b,id:"minecraft:cobblestone"}"
+slot-9.0="{Count:2b,id:"minecraft:furnace"}"
+xp=0.6883112192153931

+ 73 - 0
configs/inv_data/survival/1.11345452E8.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air"}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:air"}"
+head="{Count:1b,id:"minecraft:air"}"
+health=20.0
+hunger=19.0
+legs="{Count:1b,id:"minecraft:air"}"
+lvl=1.0
+offhand="{Count:1b,id:"minecraft:air"}"
+saturation=0.0
+slot-0.0="{Count:1b,id:"minecraft:stone_sword",tag:{Damage:15}}"
+slot-1.0="{Count:1b,id:"minecraft:stone_pickaxe",tag:{Damage:0}}"
+slot-10.0="{Count:1b,id:"minecraft:iron_ingot"}"
+slot-11.0="{Count:1b,id:"minecraft:air"}"
+slot-12.0="{Count:1b,id:"minecraft:air"}"
+slot-13.0="{Count:1b,id:"minecraft:air"}"
+slot-14.0="{Count:1b,id:"minecraft:air"}"
+slot-15.0="{Count:1b,id:"minecraft:air"}"
+slot-16.0="{Count:1b,id:"minecraft:air"}"
+slot-17.0="{Count:11b,id:"minecraft:birch_planks"}"
+slot-18.0="{Count:1b,id:"minecraft:leather"}"
+slot-19.0="{Count:1b,id:"minecraft:air"}"
+slot-2.0="{Count:1b,id:"minecraft:stone_shovel",tag:{Damage:1}}"
+slot-20.0="{Count:1b,id:"minecraft:air"}"
+slot-21.0="{Count:1b,id:"minecraft:air"}"
+slot-22.0="{Count:1b,id:"minecraft:air"}"
+slot-23.0="{Count:1b,id:"minecraft:bone"}"
+slot-24.0="{Count:1b,id:"minecraft:air"}"
+slot-25.0="{Count:1b,id:"minecraft:air"}"
+slot-26.0="{Count:3b,id:"minecraft:stick"}"
+slot-27.0="{Count:1b,id:"minecraft:air"}"
+slot-28.0="{Count:1b,id:"minecraft:air"}"
+slot-29.0="{Count:1b,id:"minecraft:air"}"
+slot-3.0="{Count:1b,id:"minecraft:porkchop"}"
+slot-30.0="{Count:1b,id:"minecraft:air"}"
+slot-31.0="{Count:1b,id:"minecraft:air"}"
+slot-32.0="{Count:1b,id:"minecraft:air"}"
+slot-33.0="{Count:1b,id:"minecraft:air"}"
+slot-34.0="{Count:1b,id:"minecraft:air"}"
+slot-35.0="{Count:10b,id:"minecraft:dirt"}"
+slot-4.0="{Count:1b,id:"minecraft:arrow"}"
+slot-5.0="{Count:6b,id:"minecraft:pumpkin_pie",tag:{display:{Lore:['{"text":"An almost whole pumpkin pie"}','{"text":"Herobrine has already eaten a piece."}'],Name:'{"text":"PumpkinMinusOneEighthCake"}'}}}"
+slot-6.0="{Count:1b,id:"minecraft:air"}"
+slot-7.0="{Count:1b,id:"minecraft:air"}"
+slot-8.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:4}}"
+slot-9.0="{Count:3b,id:"minecraft:beef"}"
+xp=0.7777777910232544

+ 73 - 0
configs/inv_data/survival/1.277215069E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:diamond_chestplate",tag:{Damage:20}}"
+eslot-0.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-1.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-10.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-11.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-12.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-13.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-14.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-15.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-16.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-17.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-2.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-24.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-3.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-9.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+feet="{Count:1b,id:"minecraft:diamond_boots",tag:{Damage:0}}"
+head="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+health=20.0
+hunger=19.0
+legs="{Count:1b,id:"minecraft:diamond_leggings",tag:{Damage:16}}"
+lvl=15.0
+offhand="{Count:1b,id:"minecraft:shield",tag:{Damage:28}}"
+saturation=0.0
+slot-0.0="{Count:1b,id:"minecraft:diamond_sword",tag:{Damage:49}}"
+slot-1.0="{Count:1b,id:"minecraft:stone_sword",tag:{Damage:5}}"
+slot-10.0="{Count:6b,id:"minecraft:raw_gold"}"
+slot-11.0="{Count:1b,id:"minecraft:iron_ingot"}"
+slot-12.0="{Count:4b,id:"minecraft:raw_iron"}"
+slot-13.0="{Count:4b,id:"minecraft:glow_ink_sac"}"
+slot-14.0="{Count:1b,id:"minecraft:stone_pickaxe",tag:{Damage:53}}"
+slot-15.0="{Count:1b,id:"minecraft:furnace"}"
+slot-16.0="{Count:10b,id:"minecraft:amethyst_block"}"
+slot-17.0="{Count:1b,id:"minecraft:oak_planks"}"
+slot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-19.0="{Count:64b,id:"minecraft:bone_block"}"
+slot-2.0="{Count:1b,id:"minecraft:iron_pickaxe",tag:{Damage:86}}"
+slot-20.0="{Count:12b,id:"minecraft:string"}"
+slot-21.0="{Count:6b,id:"minecraft:amethyst_shard"}"
+slot-22.0="{Count:2b,id:"minecraft:bone"}"
+slot-23.0="{Count:14b,id:"minecraft:lapis_lazuli"}"
+slot-24.0="{Count:4b,id:"minecraft:wheat_seeds"}"
+slot-25.0="{Count:43b,id:"minecraft:cobbled_deepslate"}"
+slot-26.0="{Count:3b,id:"minecraft:raw_copper"}"
+slot-27.0="{Count:1b,id:"minecraft:saddle"}"
+slot-28.0="{Count:4b,id:"minecraft:coal"}"
+slot-29.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-3.0="{Count:1b,id:"minecraft:stone_shovel",tag:{Damage:8}}"
+slot-30.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-31.0="{Count:28b,id:"minecraft:sugar_cane"}"
+slot-32.0="{Count:1b,id:"minecraft:golden_apple"}"
+slot-33.0="{Count:16b,id:"minecraft:oak_planks"}"
+slot-34.0="{Count:1b,id:"minecraft:wooden_pickaxe",tag:{Damage:9}}"
+slot-35.0="{Count:1b,id:"minecraft:wooden_pickaxe",tag:{Damage:11}}"
+slot-4.0="{Count:2b,id:"minecraft:pumpkin_pie",tag:{display:{Lore:['{"text":"An almost whole pumpkin pie"}','{"text":"Herobrine has already eaten a piece."}'],Name:'{"text":"PumpkinMinusOneEighthCake"}'}}}"
+slot-5.0="{Count:2b,id:"minecraft:chicken"}"
+slot-6.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:102}}"
+slot-7.0="{Count:1b,id:"minecraft:crafting_table"}"
+slot-8.0="{Count:47b,id:"minecraft:cobbled_deepslate"}"
+slot-9.0="{Count:1b,id:"minecraft:smooth_basalt"}"
+xp=0.48648637533187866

+ 73 - 0
configs/inv_data/survival/1.317736069E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-0.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-1.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-10.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-11.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-12.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-13.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-14.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-15.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-16.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-17.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-2.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-24.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-3.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-9.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+feet="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+head="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+health=20.0
+hunger=13.0
+legs="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+lvl=11.0
+offhand="{Count:28b,id:"minecraft:torch"}"
+saturation=0.0
+slot-0.0="{Count:1b,id:"minecraft:stone_sword",tag:{Damage:102}}"
+slot-1.0="{Count:1b,id:"minecraft:wooden_axe",tag:{Damage:41}}"
+slot-10.0="{Count:64b,id:"minecraft:kelp"}"
+slot-11.0="{Count:12b,id:"minecraft:wheat"}"
+slot-12.0="{Count:58b,id:"minecraft:kelp"}"
+slot-13.0="{Count:8b,id:"minecraft:clay_ball"}"
+slot-14.0="{Count:42b,id:"minecraft:coal"}"
+slot-15.0="{Count:3b,id:"minecraft:bone"}"
+slot-16.0="{Count:5b,id:"minecraft:oak_log"}"
+slot-17.0="{Count:64b,id:"minecraft:raw_copper"}"
+slot-18.0="{Count:4b,id:"minecraft:arrow"}"
+slot-19.0="{Count:14b,id:"minecraft:granite"}"
+slot-2.0="{Count:1b,id:"minecraft:stone_pickaxe",tag:{Damage:87}}"
+slot-20.0="{Count:32b,id:"minecraft:raw_copper"}"
+slot-21.0="{Count:1b,id:"minecraft:potato"}"
+slot-22.0="{Count:10b,id:"minecraft:furnace"}"
+slot-23.0="{Count:12b,id:"minecraft:rotten_flesh"}"
+slot-24.0="{Count:1b,id:"minecraft:water_bucket"}"
+slot-25.0="{Count:11b,id:"minecraft:andesite"}"
+slot-26.0="{Count:8b,id:"minecraft:iron_ingot"}"
+slot-27.0="{Count:2b,id:"minecraft:diorite"}"
+slot-28.0="{Count:14b,id:"minecraft:bone_meal"}"
+slot-29.0="{Count:10b,id:"minecraft:sugar_cane"}"
+slot-3.0="{Count:1b,id:"minecraft:stone_hoe",tag:{Damage:8}}"
+slot-30.0="{Count:4b,id:"minecraft:cobblestone"}"
+slot-31.0="{Count:1b,id:"minecraft:gunpowder"}"
+slot-32.0="{Count:1b,id:"minecraft:gravel"}"
+slot-33.0="{Count:40b,id:"minecraft:bone_block"}"
+slot-34.0="{Count:1b,id:"minecraft:flint"}"
+slot-35.0="{Count:1b,id:"minecraft:orange_tulip"}"
+slot-4.0="{Count:59b,id:"minecraft:cobblestone"}"
+slot-5.0="{Count:1b,id:"minecraft:stone_pickaxe",tag:{Damage:0}}"
+slot-6.0="{Count:44b,id:"minecraft:dried_kelp"}"
+slot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-8.0="{Count:11b,id:"minecraft:raw_iron"}"
+slot-9.0="{Count:64b,id:"minecraft:kelp"}"
+xp=0.2758621573448181

+ 73 - 0
configs/inv_data/survival/1.468138155E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air"}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:air"}"
+head="{Count:1b,id:"minecraft:air"}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:air"}"
+lvl=0.0
+offhand="{Count:1b,id:"minecraft:air"}"
+saturation=5.800000190734863
+slot-0.0="{Count:7b,id:"minecraft:glow_berries"}"
+slot-1.0="{Count:1b,id:"minecraft:bone_meal"}"
+slot-10.0="{Count:1b,id:"minecraft:mossy_cobblestone_stairs"}"
+slot-11.0="{Count:1b,id:"minecraft:hanging_roots"}"
+slot-12.0="{Count:1b,id:"minecraft:mossy_cobblestone"}"
+slot-13.0="{Count:1b,id:"minecraft:wooden_hoe",tag:{Damage:0}}"
+slot-14.0="{Count:1b,id:"minecraft:andesite"}"
+slot-15.0="{Count:1b,id:"minecraft:air"}"
+slot-16.0="{Count:1b,id:"minecraft:air"}"
+slot-17.0="{Count:1b,id:"minecraft:air"}"
+slot-18.0="{Count:1b,id:"minecraft:air"}"
+slot-19.0="{Count:1b,id:"minecraft:air"}"
+slot-2.0="{Count:2b,id:"minecraft:big_dripleaf"}"
+slot-20.0="{Count:1b,id:"minecraft:air"}"
+slot-21.0="{Count:1b,id:"minecraft:air"}"
+slot-22.0="{Count:1b,id:"minecraft:air"}"
+slot-23.0="{Count:1b,id:"minecraft:air"}"
+slot-24.0="{Count:1b,id:"minecraft:air"}"
+slot-25.0="{Count:1b,id:"minecraft:air"}"
+slot-26.0="{Count:1b,id:"minecraft:air"}"
+slot-27.0="{Count:1b,id:"minecraft:air"}"
+slot-28.0="{Count:1b,id:"minecraft:air"}"
+slot-29.0="{Count:1b,id:"minecraft:air"}"
+slot-3.0="{Count:1b,id:"minecraft:small_dripleaf"}"
+slot-30.0="{Count:1b,id:"minecraft:air"}"
+slot-31.0="{Count:1b,id:"minecraft:air"}"
+slot-32.0="{Count:1b,id:"minecraft:air"}"
+slot-33.0="{Count:1b,id:"minecraft:air"}"
+slot-34.0="{Count:1b,id:"minecraft:air"}"
+slot-35.0="{Count:1b,id:"minecraft:mossy_cobblestone_slab"}"
+slot-4.0="{Count:1b,id:"minecraft:andesite_slab"}"
+slot-5.0="{Count:1b,id:"minecraft:mossy_cobblestone"}"
+slot-6.0="{Count:1b,id:"minecraft:mossy_cobblestone_stairs"}"
+slot-7.0="{Count:1b,id:"minecraft:glow_lichen"}"
+slot-8.0="{Count:1b,id:"minecraft:grass_block"}"
+slot-9.0="{Count:1b,id:"minecraft:mossy_stone_bricks"}"
+xp=0.0

+ 73 - 0
configs/inv_data/survival/1.711359078E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-0.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-1.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-10.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-11.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-12.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-13.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-14.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-15.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-16.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-17.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-2.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-24.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-3.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-9.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+feet="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+head="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+lvl=0.0
+offhand="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+saturation=4.0
+slot-0.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-1.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-10.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-11.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-12.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-13.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-14.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-15.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-16.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-17.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-2.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-24.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-27.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-28.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-29.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-3.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-30.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-31.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-32.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-33.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-34.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-35.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-9.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+xp=0.0

+ 73 - 0
configs/inv_data/survival/1.767533467E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air"}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:air"}"
+head="{Count:1b,id:"minecraft:air"}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:air"}"
+lvl=0.0
+offhand="{Count:1b,id:"minecraft:air"}"
+saturation=5.0
+slot-0.0="{Count:1b,id:"minecraft:wooden_axe",tag:{Damage:0}}"
+slot-1.0="{Count:1b,id:"minecraft:air"}"
+slot-10.0="{Count:1b,id:"minecraft:air"}"
+slot-11.0="{Count:1b,id:"minecraft:air"}"
+slot-12.0="{Count:1b,id:"minecraft:air"}"
+slot-13.0="{Count:1b,id:"minecraft:air"}"
+slot-14.0="{Count:1b,id:"minecraft:air"}"
+slot-15.0="{Count:1b,id:"minecraft:air"}"
+slot-16.0="{Count:1b,id:"minecraft:air"}"
+slot-17.0="{Count:1b,id:"minecraft:air"}"
+slot-18.0="{Count:1b,id:"minecraft:air"}"
+slot-19.0="{Count:1b,id:"minecraft:air"}"
+slot-2.0="{Count:1b,id:"minecraft:air"}"
+slot-20.0="{Count:1b,id:"minecraft:air"}"
+slot-21.0="{Count:1b,id:"minecraft:air"}"
+slot-22.0="{Count:1b,id:"minecraft:air"}"
+slot-23.0="{Count:1b,id:"minecraft:air"}"
+slot-24.0="{Count:1b,id:"minecraft:air"}"
+slot-25.0="{Count:1b,id:"minecraft:air"}"
+slot-26.0="{Count:1b,id:"minecraft:air"}"
+slot-27.0="{Count:1b,id:"minecraft:air"}"
+slot-28.0="{Count:1b,id:"minecraft:air"}"
+slot-29.0="{Count:1b,id:"minecraft:air"}"
+slot-3.0="{Count:1b,id:"minecraft:air"}"
+slot-30.0="{Count:1b,id:"minecraft:air"}"
+slot-31.0="{Count:1b,id:"minecraft:air"}"
+slot-32.0="{Count:1b,id:"minecraft:air"}"
+slot-33.0="{Count:1b,id:"minecraft:air"}"
+slot-34.0="{Count:1b,id:"minecraft:air"}"
+slot-35.0="{Count:1b,id:"minecraft:air"}"
+slot-4.0="{Count:1b,id:"minecraft:air"}"
+slot-5.0="{Count:1b,id:"minecraft:air"}"
+slot-6.0="{Count:1b,id:"minecraft:air"}"
+slot-7.0="{Count:1b,id:"minecraft:air"}"
+slot-8.0="{Count:1b,id:"minecraft:air"}"
+slot-9.0="{Count:1b,id:"minecraft:air"}"
+xp=0.0

+ 73 - 0
configs/inv_data/survival/1.922602981E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air"}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:air"}"
+head="{Count:1b,id:"minecraft:air"}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:air"}"
+lvl=0.0
+offhand="{Count:1b,id:"minecraft:air"}"
+saturation=5.0
+slot-0.0="{Count:1b,id:"minecraft:air"}"
+slot-1.0="{Count:1b,id:"minecraft:air"}"
+slot-10.0="{Count:1b,id:"minecraft:air"}"
+slot-11.0="{Count:1b,id:"minecraft:air"}"
+slot-12.0="{Count:1b,id:"minecraft:air"}"
+slot-13.0="{Count:1b,id:"minecraft:air"}"
+slot-14.0="{Count:1b,id:"minecraft:air"}"
+slot-15.0="{Count:1b,id:"minecraft:air"}"
+slot-16.0="{Count:1b,id:"minecraft:air"}"
+slot-17.0="{Count:1b,id:"minecraft:air"}"
+slot-18.0="{Count:1b,id:"minecraft:air"}"
+slot-19.0="{Count:1b,id:"minecraft:air"}"
+slot-2.0="{Count:1b,id:"minecraft:air"}"
+slot-20.0="{Count:1b,id:"minecraft:air"}"
+slot-21.0="{Count:1b,id:"minecraft:air"}"
+slot-22.0="{Count:1b,id:"minecraft:air"}"
+slot-23.0="{Count:1b,id:"minecraft:air"}"
+slot-24.0="{Count:1b,id:"minecraft:air"}"
+slot-25.0="{Count:1b,id:"minecraft:air"}"
+slot-26.0="{Count:1b,id:"minecraft:air"}"
+slot-27.0="{Count:1b,id:"minecraft:air"}"
+slot-28.0="{Count:1b,id:"minecraft:air"}"
+slot-29.0="{Count:1b,id:"minecraft:air"}"
+slot-3.0="{Count:1b,id:"minecraft:air"}"
+slot-30.0="{Count:1b,id:"minecraft:air"}"
+slot-31.0="{Count:1b,id:"minecraft:air"}"
+slot-32.0="{Count:1b,id:"minecraft:air"}"
+slot-33.0="{Count:1b,id:"minecraft:air"}"
+slot-34.0="{Count:1b,id:"minecraft:air"}"
+slot-35.0="{Count:1b,id:"minecraft:air"}"
+slot-4.0="{Count:1b,id:"minecraft:air"}"
+slot-5.0="{Count:1b,id:"minecraft:air"}"
+slot-6.0="{Count:1b,id:"minecraft:air"}"
+slot-7.0="{Count:1b,id:"minecraft:air"}"
+slot-8.0="{Count:1b,id:"minecraft:air"}"
+slot-9.0="{Count:1b,id:"minecraft:air"}"
+xp=0.0

+ 73 - 0
configs/inv_data/survival/2.051921072E9.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:diamond_chestplate",tag:{Damage:8}}"
+eslot-0.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-1.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-10.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-11.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-12.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-13.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-14.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-15.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-16.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-17.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-2.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-24.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-3.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-9.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+feet="{Count:1b,id:"minecraft:iron_boots",tag:{Damage:31}}"
+head="{Count:1b,id:"minecraft:iron_helmet",tag:{Damage:2}}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:iron_leggings",tag:{Damage:31}}"
+lvl=16.0
+offhand="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+saturation=1.8000001907348633
+slot-0.0="{Count:6b,id:"minecraft:cooked_mutton"}"
+slot-1.0="{Count:1b,id:"minecraft:diamond_sword",tag:{Damage:0}}"
+slot-10.0="{Count:23b,id:"minecraft:torch"}"
+slot-11.0="{Count:7b,id:"minecraft:coal"}"
+slot-12.0="{Count:3b,id:"minecraft:string"}"
+slot-13.0="{Count:35b,id:"minecraft:redstone"}"
+slot-14.0="{Count:7b,id:"minecraft:raw_iron"}"
+slot-15.0="{Count:1b,id:"minecraft:glow_ink_sac"}"
+slot-16.0="{Count:1b,id:"minecraft:dispenser"}"
+slot-17.0="{Count:1b,id:"minecraft:flint_and_steel",tag:{Damage:31}}"
+slot-18.0="{Count:13b,id:"minecraft:stick"}"
+slot-19.0="{Count:1b,id:"minecraft:golden_pickaxe",tag:{Damage:0,Enchantments:[{id:"minecraft:silk_touch",lvl:1s}]}}"
+slot-2.0="{Count:1b,id:"minecraft:diamond_pickaxe",tag:{Damage:152}}"
+slot-20.0="{Count:3b,id:"minecraft:flint"}"
+slot-21.0="{Count:19b,id:"minecraft:arrow"}"
+slot-22.0="{Count:8b,id:"minecraft:white_wool"}"
+slot-23.0="{Count:1b,id:"minecraft:shield",tag:{Damage:48}}"
+slot-24.0="{Count:6b,id:"minecraft:ladder"}"
+slot-25.0="{Count:1b,id:"minecraft:crafting_table"}"
+slot-26.0="{Count:1b,id:"minecraft:wheat_seeds"}"
+slot-27.0="{Count:11b,id:"minecraft:bone"}"
+slot-28.0="{Count:1b,id:"minecraft:spore_blossom"}"
+slot-29.0="{Count:45b,id:"minecraft:dark_oak_planks"}"
+slot-3.0="{Count:1b,id:"minecraft:iron_axe",tag:{Damage:82}}"
+slot-30.0="{Count:10b,id:"minecraft:rotten_flesh"}"
+slot-31.0="{Count:4b,id:"minecraft:amethyst_shard"}"
+slot-32.0="{Count:16b,id:"minecraft:rail"}"
+slot-33.0="{Count:1b,id:"minecraft:golden_axe",tag:{Damage:0,Enchantments:[{id:"minecraft:efficiency",lvl:1s}]}}"
+slot-34.0="{Count:32b,id:"minecraft:lapis_lazuli"}"
+slot-35.0="{Count:15b,id:"minecraft:iron_nugget"}"
+slot-4.0="{Count:1b,id:"minecraft:furnace"}"
+slot-5.0="{Count:16b,id:"minecraft:melon_slice"}"
+slot-6.0="{Count:3b,id:"minecraft:cooked_porkchop"}"
+slot-7.0="{Count:1b,id:"minecraft:water_bucket"}"
+slot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-9.0="{Count:1b,id:"minecraft:name_tag"}"
+xp=0.8333334922790527

+ 6 - 6
configs/inv_data/survival/4.96921431E8.snuvic

@@ -28,13 +28,13 @@ eslot-8.0="{Count:1b,id:"minecraft:air"}"
 eslot-9.0="{Count:1b,id:"minecraft:air"}"
 feet="{Count:1b,id:"minecraft:air"}"
 head="{Count:1b,id:"minecraft:air"}"
-health=15.0
-hunger=14.0
+health=20.0
+hunger=20.0
 legs="{Count:1b,id:"minecraft:air"}"
-lvl=8.0
+lvl=4.0
 offhand="{Count:1b,id:"minecraft:air"}"
-saturation=0.0
-slot-0.0="{Count:64b,id:"minecraft:oak_door"}"
+saturation=5.0
+slot-0.0="{Count:1b,id:"minecraft:grass_block"}"
 slot-1.0="{Count:1b,id:"minecraft:air"}"
 slot-10.0="{Count:1b,id:"minecraft:air"}"
 slot-11.0="{Count:1b,id:"minecraft:air"}"
@@ -70,4 +70,4 @@ slot-6.0="{Count:1b,id:"minecraft:air"}"
 slot-7.0="{Count:1b,id:"minecraft:air"}"
 slot-8.0="{Count:1b,id:"minecraft:air"}"
 slot-9.0="{Count:1b,id:"minecraft:air"}"
-xp=0.13043494522571564
+xp=0.2666666507720947

+ 73 - 0
configs/inv_data/survival/6.11614352E8.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-0.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-1.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-10.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-11.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-12.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-13.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-14.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-15.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-16.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-17.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-2.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-24.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-3.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-9.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+feet="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+head="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+health=8.700002670288086
+hunger=17.0
+legs="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+lvl=10.0
+offhand="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+saturation=0.0
+slot-0.0="{Count:5b,id:"minecraft:bone"}"
+slot-1.0="{Count:1b,id:"minecraft:bowl"}"
+slot-10.0="{Count:16b,id:"minecraft:raw_iron"}"
+slot-11.0="{Count:19b,id:"minecraft:sugar_cane"}"
+slot-12.0="{Count:5b,id:"minecraft:iron_nugget"}"
+slot-13.0="{Count:26b,id:"minecraft:redstone"}"
+slot-14.0="{Count:3b,id:"minecraft:bowl"}"
+slot-15.0="{Count:64b,id:"minecraft:cobbled_deepslate"}"
+slot-16.0="{Count:64b,id:"minecraft:cobbled_deepslate"}"
+slot-17.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:39}}"
+slot-18.0="{Count:9b,id:"minecraft:raw_gold"}"
+slot-19.0="{Count:5b,id:"minecraft:string"}"
+slot-2.0="{Count:4b,id:"minecraft:arrow"}"
+slot-20.0="{Count:1b,id:"minecraft:iron_pickaxe",tag:{Damage:0}}"
+slot-21.0="{Count:4b,id:"minecraft:stick"}"
+slot-22.0="{Count:19b,id:"minecraft:sugar_cane"}"
+slot-23.0="{Count:1b,id:"minecraft:obsidian"}"
+slot-24.0="{Count:31b,id:"minecraft:amethyst_block"}"
+slot-25.0="{Count:27b,id:"minecraft:tuff"}"
+slot-26.0="{Count:1b,id:"minecraft:dark_oak_planks"}"
+slot-27.0="{Count:1b,id:"minecraft:golden_shovel",tag:{Damage:0,Enchantments:[{id:"minecraft:mending",lvl:1s}]}}"
+slot-28.0="{Count:1b,id:"minecraft:clock"}"
+slot-29.0="{Count:4b,id:"minecraft:flint"}"
+slot-3.0="{Count:1b,id:"minecraft:iron_pickaxe",tag:{Damage:159}}"
+slot-30.0="{Count:12b,id:"minecraft:leather"}"
+slot-31.0="{Count:5b,id:"minecraft:iron_ingot"}"
+slot-32.0="{Count:64b,id:"minecraft:cobbled_deepslate"}"
+slot-33.0="{Count:28b,id:"minecraft:amethyst_shard"}"
+slot-34.0="{Count:1b,id:"minecraft:golden_horse_armor"}"
+slot-35.0="{Count:10b,id:"minecraft:diamond"}"
+slot-4.0="{Count:1b,id:"minecraft:stone_sword",tag:{Damage:86}}"
+slot-5.0="{Count:1b,id:"minecraft:stone_pickaxe",tag:{Damage:99}}"
+slot-6.0="{Count:13b,id:"minecraft:pumpkin_pie",tag:{display:{Lore:['{"text":"An almost whole pumpkin pie"}','{"text":"Herobrine has already eaten a piece."}'],Name:'{"text":"PumpkinMinusOneEighthCake"}'}}}"
+slot-7.0="{Count:39b,id:"minecraft:cobbled_deepslate"}"
+slot-8.0="{Count:1b,id:"minecraft:spider_eye"}"
+slot-9.0="{Count:25b,id:"minecraft:lapis_lazuli"}"
+xp=0.703703761100769

+ 73 - 0
configs/inv_data/survival/8.54089626E8.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air"}"
+eslot-0.0="{Count:1b,id:"minecraft:air"}"
+eslot-1.0="{Count:1b,id:"minecraft:air"}"
+eslot-10.0="{Count:1b,id:"minecraft:air"}"
+eslot-11.0="{Count:1b,id:"minecraft:air"}"
+eslot-12.0="{Count:1b,id:"minecraft:air"}"
+eslot-13.0="{Count:1b,id:"minecraft:air"}"
+eslot-14.0="{Count:1b,id:"minecraft:air"}"
+eslot-15.0="{Count:1b,id:"minecraft:air"}"
+eslot-16.0="{Count:1b,id:"minecraft:air"}"
+eslot-17.0="{Count:1b,id:"minecraft:air"}"
+eslot-18.0="{Count:1b,id:"minecraft:air"}"
+eslot-19.0="{Count:1b,id:"minecraft:air"}"
+eslot-2.0="{Count:1b,id:"minecraft:air"}"
+eslot-20.0="{Count:1b,id:"minecraft:air"}"
+eslot-21.0="{Count:1b,id:"minecraft:air"}"
+eslot-22.0="{Count:1b,id:"minecraft:air"}"
+eslot-23.0="{Count:1b,id:"minecraft:air"}"
+eslot-24.0="{Count:1b,id:"minecraft:air"}"
+eslot-25.0="{Count:1b,id:"minecraft:air"}"
+eslot-26.0="{Count:1b,id:"minecraft:air"}"
+eslot-3.0="{Count:1b,id:"minecraft:air"}"
+eslot-4.0="{Count:1b,id:"minecraft:air"}"
+eslot-5.0="{Count:1b,id:"minecraft:air"}"
+eslot-6.0="{Count:1b,id:"minecraft:air"}"
+eslot-7.0="{Count:1b,id:"minecraft:air"}"
+eslot-8.0="{Count:1b,id:"minecraft:air"}"
+eslot-9.0="{Count:1b,id:"minecraft:air"}"
+feet="{Count:1b,id:"minecraft:air"}"
+head="{Count:1b,id:"minecraft:leather_helmet",tag:{Damage:4,Enchantments:[{id:"minecraft:fire_protection",lvl:2s}]}}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:air"}"
+lvl=14.0
+offhand="{Count:1b,id:"minecraft:air"}"
+saturation=4.0
+slot-0.0="{Count:1b,id:"minecraft:air"}"
+slot-1.0="{Count:1b,id:"minecraft:crafting_table"}"
+slot-10.0="{Count:1b,id:"minecraft:flint"}"
+slot-11.0="{Count:27b,id:"minecraft:stick"}"
+slot-12.0="{Count:1b,id:"minecraft:yellow_bed"}"
+slot-13.0="{Count:7b,id:"minecraft:carrot"}"
+slot-14.0="{Count:1b,id:"minecraft:furnace"}"
+slot-15.0="{Count:23b,id:"minecraft:hay_block"}"
+slot-16.0="{Count:10b,id:"minecraft:diamond"}"
+slot-17.0="{Count:11b,id:"minecraft:leather"}"
+slot-18.0="{Count:64b,id:"minecraft:amethyst_shard"}"
+slot-19.0="{Count:1b,id:"minecraft:filled_map",tag:{Decorations:[{id:"+",rot:180.0d,type:26b,x:1833.0d,z:-2231.0d}],display:{Name:'{"translate":"filled_map.buried_treasure"}'},map:1}}"
+slot-2.0="{Count:1b,id:"minecraft:water_bucket"}"
+slot-20.0="{Count:29b,id:"minecraft:lapis_lazuli"}"
+slot-21.0="{Count:5b,id:"minecraft:raw_gold"}"
+slot-22.0="{Count:54b,id:"minecraft:dark_oak_log"}"
+slot-23.0="{Count:19b,id:"minecraft:mutton"}"
+slot-24.0="{Count:11b,id:"minecraft:white_wool"}"
+slot-25.0="{Count:23b,id:"minecraft:coal"}"
+slot-26.0="{Count:2b,id:"minecraft:sugar_cane"}"
+slot-27.0="{Count:1b,id:"minecraft:white_bed"}"
+slot-28.0="{Count:29b,id:"minecraft:pumpkin"}"
+slot-29.0="{Count:10b,id:"minecraft:dark_oak_sapling"}"
+slot-3.0="{Count:10b,id:"minecraft:bread"}"
+slot-30.0="{Count:9b,id:"minecraft:chicken"}"
+slot-31.0="{Count:25b,id:"minecraft:beef"}"
+slot-32.0="{Count:1b,id:"minecraft:name_tag"}"
+slot-33.0="{Count:11b,id:"minecraft:gunpowder"}"
+slot-34.0="{Count:27b,id:"minecraft:oak_planks"}"
+slot-35.0="{Count:1b,id:"minecraft:enchanted_book",tag:{StoredEnchantments:[{id:"minecraft:blast_protection",lvl:1s}]}}"
+slot-4.0="{Count:1b,id:"minecraft:stone_shovel",tag:{Damage:13}}"
+slot-5.0="{Count:1b,id:"minecraft:diamond_axe",tag:{Damage:119}}"
+slot-6.0="{Count:1b,id:"minecraft:stone_sword",tag:{Damage:2}}"
+slot-7.0="{Count:1b,id:"minecraft:iron_pickaxe",tag:{Damage:247}}"
+slot-8.0="{Count:1b,id:"minecraft:air"}"
+slot-9.0="{Count:64b,id:"minecraft:sugar_cane"}"
+xp=0.2285715490579605

+ 73 - 0
configs/inv_data/survival/8.96759775E8.snuvic

@@ -0,0 +1,73 @@
+chest="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-0.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-1.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-10.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-11.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-12.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-13.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-14.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-15.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-16.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-17.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-18.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-2.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-24.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-3.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-7.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+eslot-9.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+feet="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+head="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+health=20.0
+hunger=20.0
+legs="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+lvl=2.0
+offhand="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+saturation=9.800000190734863
+slot-0.0="{Count:1b,id:"minecraft:stone_sword",tag:{Damage:0}}"
+slot-1.0="{Count:1b,id:"minecraft:stone_pickaxe",tag:{Damage:21}}"
+slot-10.0="{Count:20b,id:"minecraft:sugar_cane"}"
+slot-11.0="{Count:1b,id:"minecraft:stone_axe",tag:{Damage:83}}"
+slot-12.0="{Count:3b,id:"minecraft:stick"}"
+slot-13.0="{Count:8b,id:"minecraft:red_mushroom"}"
+slot-14.0="{Count:8b,id:"minecraft:brown_mushroom"}"
+slot-15.0="{Count:1b,id:"minecraft:pink_tulip"}"
+slot-16.0="{Count:1b,id:"minecraft:crafting_table"}"
+slot-17.0="{Count:6b,id:"minecraft:cobblestone"}"
+slot-18.0="{Count:1b,id:"minecraft:furnace"}"
+slot-19.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-2.0="{Count:1b,id:"minecraft:oak_boat"}"
+slot-20.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-21.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-22.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-23.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-24.0="{Count:4b,id:"minecraft:bowl"}"
+slot-25.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-26.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-27.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-28.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-29.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-3.0="{Count:5b,id:"minecraft:dark_oak_log"}"
+slot-30.0="{Count:7b,id:"minecraft:dark_oak_planks"}"
+slot-31.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-32.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-33.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-34.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-35.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-4.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-5.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-6.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-7.0="{Count:13b,id:"minecraft:cooked_porkchop"}"
+slot-8.0="{Count:1b,id:"minecraft:air",tag:{Charged:0b}}"
+slot-9.0="{Count:1b,id:"minecraft:stone_shovel",tag:{Damage:2}}"
+xp=0.6363636255264282

+ 14 - 4
configs/market_prices.snuvic

@@ -1,6 +1,16 @@
-BEETROOT=64.0
-CARROT=99.0
+BEETROOT=269.0
+BREAD=192.0
+CAKE=32.0
+CARROT=374.0
+COOKIE=256.0
+COPPER_INGOT=128.0
 DIAMOND=980.0
 FLINT=3816.0
-PUMPKIN=64.0
-WHEAT=1128.0
+GOLD_INGOT=128.0
+IRON_INGOT=192.0
+LAPIS_LAZULI=43.0
+MELON=128.0
+POTATO=253.0
+PUMPKIN=311.0
+REDSTONE=30.0
+WHEAT=568.0

+ 5 - 0
configs/player_data/survival_data/-1.329433148E9.snuvic

@@ -0,0 +1,5 @@
+backpos="world:110.31903131003396:80.0:-20.665184684903814:-133.36270141601562:25.45911979675293"
+firstjoin=false
+money=144.0
+pvp=true
+rank="§3User"

+ 4 - 0
configs/player_data/survival_data/-1.839148068E9.snuvic

@@ -0,0 +1,4 @@
+backpos="world:-279.0858232452789:68.0:-11.896051972460912:-87.81434631347656:30.609272003173828"
+firstjoin=false
+money=385.0
+pvp=false

+ 3 - 0
configs/player_data/survival_data/-1.868713057E9.snuvic

@@ -0,0 +1,3 @@
+backpos="null"
+firstjoin=false
+money=8.0

+ 4 - 0
configs/player_data/survival_data/-1.890429792E9.snuvic

@@ -0,0 +1,4 @@
+backpos="world:121.50719090191498:80.58941599916672:-25.50216824517063:-92.95668029785156:24.609294891357422"
+firstjoin=false
+money=221.0
+pvp=true

+ 3 - 0
configs/player_data/survival_data/-3.0552298E8.snuvic

@@ -0,0 +1,3 @@
+backpos="world_nether:335.80149453393466:67.0:76.99403363162483:96.13107299804688:-0.5884374976158142"
+firstjoin=false
+rank="§6Frequenter"

+ 5 - 0
configs/player_data/survival_data/-3.5231995E7.snuvic

@@ -0,0 +1,5 @@
+backpos="world:121.32906066575823:78.5:-25.395508122824847:63.79302978515625:5.559326171875"
+firstjoin=false
+money=11511.0
+pvp=false
+rank="§dSponsor"

+ 5 - 0
configs/player_data/survival_data/-3.7783286E7.snuvic

@@ -0,0 +1,5 @@
+backpos="null"
+firstjoin=false
+money=15.0
+plot.usedFree=true
+rank="§eSettler"

+ 4 - 0
configs/player_data/survival_data/-5.18612191E8.snuvic

@@ -0,0 +1,4 @@
+backpos="world:118.99800445174121:81.82930389124868:-20.33100524811516:-82.6068344116211:35.7092399597168"
+firstjoin=false
+money=110.0
+pvp=false

+ 2 - 1
configs/player_data/survival_data/1.086995138E9.snuvic

@@ -1,3 +1,4 @@
-backpos="world:-0.6292776648920858:67.0:5.0314908200899815:47.51354217529297:10.454723358154297"
+backpos="world:96.07733488260233:78.0:-153.3708924333615:-173.448486328125:-3.485369920730591"
 firstjoin=false
+pvp=false
 rank="§3User"

+ 6 - 1
configs/player_data/survival_data/1.094204588E9.snuvic

@@ -1,2 +1,7 @@
-backpos="null"
+backpos="world:123.27155327053966:77.5:-29.878165616597432:-4.46764612197876:18.50848960876465"
 firstjoin=false
+message.join="is now looking for chocolate"
+message.leave="has eaten all the chocolate"
+money=1402.0
+pvp=true
+rank="§9Moderator"

+ 3 - 1
configs/player_data/survival_data/1.11345452E8.snuvic

@@ -1,2 +1,4 @@
-backpos="null"
+backpos="world:-278.32647188808943:67.0:-7.724272092485372:-96.7547607421875:24.049192428588867"
 firstjoin=false
+pvp=false
+rank="§cAdmin"

+ 2 - 0
configs/player_data/survival_data/1.277215069E9.snuvic

@@ -0,0 +1,2 @@
+backpos="null"
+firstjoin=false

+ 2 - 0
configs/player_data/survival_data/1.317736069E9.snuvic

@@ -0,0 +1,2 @@
+backpos="null"
+firstjoin=false

+ 1 - 1
configs/player_data/survival_data/1.468138155E9.snuvic

@@ -1,2 +1,2 @@
-backpos="world:134.19033521922563:67.72375643115483:-60.81237245241793:147.2640380859375:-0.9470778703689575"
+backpos="null"
 firstjoin=false

+ 3 - 0
configs/player_data/survival_data/1.547866928E9.snuvic

@@ -0,0 +1,3 @@
+backpos="world:101.92173270763502:-41.0:466.48044717068564:92.89892578125:21.590396881103516"
+firstjoin=false
+pvp=false

+ 2 - 0
configs/player_data/survival_data/1.711359078E9.snuvic

@@ -0,0 +1,2 @@
+backpos="world:91.1489401758039:69.0:-525.4783564961217:9.5430908203125:4.270227432250977"
+firstjoin=false

+ 1 - 0
configs/player_data/survival_data/1.767533467E9.snuvic

@@ -1,4 +1,5 @@
 backpos="null"
 door_auto_close=false
 firstjoin=false
+money=25431.0
 rank="§4Owner"

+ 4 - 0
configs/player_data/survival_data/2.051921072E9.snuvic

@@ -0,0 +1,4 @@
+backpos="world:-63.14093061497691:65.0:-44.73060257216054:-69.20843505859375:0.581866443157196"
+firstjoin=false
+pvp=true
+rank="§eNewcomer"

+ 3 - 2
configs/player_data/survival_data/4.96921431E8.snuvic

@@ -1,10 +1,11 @@
-backpos="world:-281.2745413282124:1.804055289940565:-486.31546331433555:9.553924560546875:17.63433074951172"
+backpos="world:98.30000001192093:77.0:-3843.2570638137377:90.03167724609375:14.028316497802734"
 door_auto_close=true
 firstjoin=false
 message.join="goes hard or goes home."
 message.leave="goes home now."
+money=5999928.0
 pet_damage=true
-pvp=false
+pvp=true
 rank="§cAdmin"
 showcoords=true
 silentjoin=false

+ 4 - 0
configs/player_data/survival_data/6.11614352E8.snuvic

@@ -0,0 +1,4 @@
+backpos="world:105.34293106882356:80.0:-8.235106304429683:99.7126235961914:-0.16111430525779724"
+firstjoin=false
+money=9848.0
+pvp=true

+ 4 - 0
configs/player_data/survival_data/8.54089626E8.snuvic

@@ -0,0 +1,4 @@
+backpos="world:1404.699999988079:-58.0:-1146.5932370005748:-176.98109436035156:0.6889530420303345"
+firstjoin=false
+money=293.0
+rank="§3User"

+ 3 - 0
configs/player_data/survival_data/8.96759775E8.snuvic

@@ -0,0 +1,3 @@
+backpos="null"
+firstjoin=false
+pvp=false

+ 1 - 1
configs/server.snuvic

@@ -1,2 +1,2 @@
-mail_id=2.0
+mail_id=5.0
 serverspawn="world:109.3314626186463:80.0:-20.723112906491803:-133.90687561035156:3.909329891204834"

+ 7 - 8
startscript.txt

@@ -10,13 +10,12 @@ script.startNamed("Playerdata", "utils/u_error", "system/player_data", "utils/u_
 script.startNamed("Chat", "utils/u_error", "system/chat", "utils/u_general");
 script.startNamed("Commands", "startcommands");
 	//script.startNamed("Creative", "utils/u_error", "system/creative", "utils/u_general");
-//script.startNamed("Copyisland", "system/copyisland", "utils/u_general");
+script.startNamed("Copyisland", "system/copyisland", "utils/u_general");
 script.startNamed("Damage", "utils/u_error", "system/damage", "utils/u_general");
-//script.startNamed("Doors", "utils/u_error", "system/doors", "utils/u_general");
+script.startNamed("Doors", "utils/u_error", "system/doors", "utils/u_general");
 	//script.startNamed("Harvest", "utils/u_error", "survival/harvest", "utils/u_general");
-	//script.startNamed("Hawkeye", "utils/u_error", "system/hawkeye", "utils/u_general");
 	//script.startNamed("Herobrine", "utils/u_error", "survival/herobrine", "utils/u_general");
-//script.startNamed("Playtime", "system/playtime");
+script.startNamed("Playtime", "system/playtime", "utils/u_general");
 script.startNamed("Pumpkin", "utils/u_error", "survival/pumpkin", "utils/u_general");
 //script.startNamed("Mobspawning", "survival/mobspawning");
 	//script.startNamed("Trader", "utils/u_error", "survival/trader", "utils/u_general");
@@ -26,7 +25,7 @@ script.startNamed("Ticket", "utils/u_error", "system/tickets", "utils/u_general"
 script.startNamed("Mails", "utils/u_error", "system/mailsystem", "utils/u_general");
 script.startNamed("Market", "utils/u_error", "system/market", "utils/u_general");
 //script.startNamed("Shops", "utils/u_error", "system/chestshops", "utils/u_general");
-//script.startNamed("Survival", "utils/u_error", "survival/survival", "utils/u_general");
+script.startNamed("Survival", "utils/u_error", "survival/survival", "utils/u_general");
 	//script.startNamed("Gamecenter", "utils/u_error", "system/gamecenter", "utils/u_general", "utils/u_games");
 	//script.startNamed("Ranklist", "utils/u_error", "system/ranklist", "utils/u_general", "utils/u_games");
 	//script.startNamed("Story", "utils/u_error", "story/story", "utils/u_general");
@@ -35,12 +34,12 @@ script.startNamed("Market", "utils/u_error", "system/market", "utils/u_general")
 	//script.startNamed("Workberries", "system/workberries");
 	//script.startNamed("Recipes", "survival/recipes");
 	//script.startNamed("Timber", "utils/u_error", "survival/timber", "utils/u_general");
-//script.startNamed("Loom", "utils/u_error", "survival/loom", "utils/u_general");
-//script.startNamed("Lectern", "utils/u_error", "survival/lectern", "utils/u_general");
+	//script.startNamed("Loom", "utils/u_error", "survival/loom", "utils/u_general");
+	//script.startNamed("Lectern", "utils/u_error", "survival/lectern", "utils/u_general");
 	//script.startNamed("Mobarena", "utils/u_error", "survival/mobarena", "utils/u_general");
 	//script.startNamed("TicTacToe", "utils/u_error", "minigames/tictactoe/tictactoe", "utils/u_general");
 script.startNamed("TipLoop", "utils/u_error", "system/tiploop", "utils/u_general");
-//script.startNamed("Scheduler", "utils/u_error", "system/scheduler", "utils/u_general");
+script.startNamed("Scheduler", "utils/u_error", "system/scheduler", "utils/u_general");
 
 error.setConsolePrint(false);
 term();

+ 36 - 0
stop.txt

@@ -0,0 +1,36 @@
+event.load("player_join");
+
+sgoto(400, "announce");
+msg("online", text.new("§4The server will restart soon!!!"));
+
+@wait
+wait();
+if(event == "player_join") {
+	ban.kick(player, text.new("Serverneustart"));
+}
+goto("wait");
+
+@announce
+msg("online", text.new("§4The server will restart now and will be up again in 30 seconds!!!"));
+sgoto(200, "stop");
+goto("wait");
+
+@stop
+online_list = players.toList();
+if(list.getSize(online_list) == 0) {
+	sgoto(100, "final_stop");
+	goto("wait");
+}
+p = list.getIndex(online_list, 0);
+list.removeIndex(online_list, 0);
+ban.kick(p, text.new("Serverneustart"));
+sgoto(20, "stop");
+goto("wait");
+
+@final_stop
+//command("stop");
+goto("wait");
+
+@on_error
+msg("dev", text.new("stop script termed"));
+term();

+ 2 - 2
survival/pumpkin.txt

@@ -8,7 +8,7 @@ list.add(lore_list, text.new("An almost whole pumpkin pie"));
 list.add(lore_list, text.new("Herobrine has already eaten a piece."));
 pumpkin = item.create("minecraft:pumpkin_pie", 1, "PumpkinMinusOneEighthCake", lore_list);
 
-pumpkin_loc = loc.new(world.getOverWorld(), 109, 94, -23);
+pumpkin_loc = loc.new(world.getOverWorld(), 101, 79, -40);
 
 msg.string("dev", "§bPumpkinPie §rloaded.");
 @main
@@ -26,7 +26,7 @@ if(event == "block_click") {
 			map.add(times, player_uuid, now_time);
 			player.giveItem(player, pumpkin);
 		} else {
-			msg.prefix(player, "§6FoodGiver", string.concat("Please wait for ", string.number(math.round(pumpkin_wait_time - diff_time)), " seconds."));
+			msg.prefix(player, "§6FoodGiver", string.concat("Please wait for ", string.number(math.roundUp(pumpkin_wait_time - diff_time)), " seconds."));
 		}
 	}
 }

+ 111 - 143
survival/survival.txt

@@ -1,22 +1,19 @@
-event.load("entity_click");
-event.load("container_click");
-event.load("inv_click");
+//event.load("entity_click");
+//event.load("inv_click");
+//event.load("snuvi_click");
 event.load("player_pre_respawn");
 event.load("player_post_respawn");
-event.load("player_login");
-event.load("player_move");
-event.load("block_break");
-event.load("block_click");
-event.load("living_death");
-event.load("living_pre_hurt");
-event.load("pre_explosion");
-event.load("mob_griefing");
-event.load("item_air_click");
-event.load("projectile_hit");
-event.load("ender_teleport");
+//event.load("player_join");
+//event.load("player_move");
+//event.load("block_break");
+//event.load("block_click");
+//event.load("living_death");
+event.load("entity_damage");
+event.load("explosion");
+//event.load("projectile_hit");
 
 setScriptVar("skills", list.new());
-skill.add("Keep Inventory", "skill.subcu_inv", "minecraft:chest", "Keeps the inventory on death", 100, false, false, true);
+/*skill.add("Keep Inventory", "skill.subcu_inv", "minecraft:chest", "Keeps the inventory on death", 100, false, false, true);
 skill.add("Comeback", "skill.comeback", "km:skill55", "Respawn at your death location", 100, false, false, true);
 skill.add("Head Hunter", "skill.head_human", "minecraft:player_head", "Drops a player's head with a 20% chance if you kill a player (5% if a staff member is killed)", 1000, true, false, false);
 skill.add("Mobheads", "skill.head_monster", "minecraft:zombie_head", "Drops a mobs's head with a 20% chance (zombie / skeleton / creeper)", 500, true, false, false);
@@ -32,7 +29,7 @@ skill.add("Timber", "skill.timber", "minecraft:iron_axe", "Break whole trees wit
 skill.add("Fire Arrow", "skill.fire_arrow", "minecraft:arrow", "For a minute with an flame enchanted bow your arrows ignite hit blocks", 50, false, true, false);
 skill.add("Better Shears", "skill.better_shears", "minecraft:shears", "Sharpness enchanted shears increase the radius for destruction of leaves", 500, true, false, true);
 skill.add("Cobweb Miner", "skill.cobweb_miner", "minecraft:cobweb", "Swords increase the radius for destruction of cobwebs", 250, true, false, true);
-
+*/
 clan.loadData();
 
 tp_list = list.new();
@@ -69,45 +66,44 @@ gambler_loc = loc.new(overworld, 185, 68, 225);
 prefix_money = "§2Money";
 prefix_skill = "§2Skill";
 
-sword_tag = item.getTag("km:sword");
-dye_tag = item.getTag("km:dye");
+//sword_tag = item.getTag("km:sword");
+//dye_tag = item.getTag("km:dye");
 leaves_tag = block.getTag("minecraft:leaves");
 sign_tag = block.getTag("minecraft:signs");
-prop_persistent = block.getProperty("persistent");
+//prop_persistent = block.getProperty("persistent");
 
 ench_flame = enchantment.get("flame");
 ench_unbreaking = enchantment.get("unbreaking");
 ench_sharpness = enchantment.get("sharpness");
-piston_sound = sound.get("block.piston.extend");
-adv_tp_sound = sound.get("block.portal.travel");
-sound_category_ambient = sound.getCategory("ambient");
+piston_sound = sound.get("BLOCK_PISTON_EXTEND");
+adv_tp_sound = sound.get("BLOCK_PORTAL_TRAVEL");
+sound_category_ambient = sound.getCategory("AMBIENT");
 
-sound_category_master = sound.getCategory("master");
-sound_flute = sound.get("block.note_block.flute");
-sound_harp = sound.get("block.note_block.harp");
-sound_pling = sound.get("block.note_block.pling");
-sound_cat = sound.get("entity.cat.ambient");
-sound_stray_cat = sound.get("entity.cat.stray_ambient");
-sound_purreow = sound.get("entity.cat.purreow");
-sound_drink_milk = sound.get("entity.wandering_trader.drink_milk");
-sound_slime_place = sound.get("block.slime_block.place");
-sound_eating = sound.get("entity.generic.eat");
+sound_category_master = sound.getCategory("MASTER");
+sound_flute = sound.get("BLOCK_NOTE_BLOCK_FLUTE");
+sound_harp = sound.get("BLOCK_NOTE_BLOCK_HARP");
+sound_pling = sound.get("BLOCK_NOTE_BLOCK_PLING");
+sound_cat = sound.get("ENTITY_CAT_AMBIENT");
+sound_stray_cat = sound.get("ENTITY_CAT_STRAY_AMBIENT");
+sound_purreow = sound.get("ENTITY_CAT_PURREOW");
+sound_drink_milk = sound.get("ENTITY_WANDERING_TRADER_DRINK_MILK");
+sound_slime_place = sound.get("BLOCK_SLIME_BLOCK_PLACE");
+sound_eating = sound.get("ENTITY_GENERIC_EAT");
 
-music_chirp = sound.get("music_disc.chirp");
+music_chirp = sound.get("MUSIC_DISC_CHIRP");
 
 Sound_Pitch_List = list.new();
 for(a = -12; a <= 12; a++){
 	list.add(Sound_Pitch_List, math.pow(2, -a / 12));
 }
 
-gambler_inv = inv.new("020202020");
+/*gambler_inv = inv.new("020202020");
 gambler_inv_id = inv.getId(gambler_inv);
 inv.setItem(gambler_inv, 0, read.item("km:coin_copper", 1, "§f1 snuvi"));
 inv.setItem(gambler_inv, 1, read.item("km:coin_silver", 1, "§f64 snuvis"));
 inv.setItem(gambler_inv, 2, read.item("km:coin_gold", 1, "§f4096 snuvis"));
 inv.setItem(gambler_inv, 3, read.item("minecraft:netherite_block", 1, "§fAll in"));
 
-//bankmenu = inv.new("233302332233302332");
 bankmenu = inv.new("233330000233330000000000000233200000233200000");
 //bankmenu = inv.new("233330000 233330000 000000000 233200000 233200000");
 bankinvid = inv.getId(bankmenu);
@@ -136,9 +132,9 @@ inv.setItem(bankmenu, 13, read.item("km:coin_silver", 1, "§f64 snuvis"));
 inv.setItem(bankmenu, 14, read.item("km:coin_silver", 64, "§f4096 snuvis"));
 inv.setItem(bankmenu, 15, arrow_left);
 inv.setItem(bankmenu, 16, arrow_right);
-inv.setItem(bankmenu, 17, read.item("km:coin_gold", 1, "§f4096 snuvis"));
+inv.setItem(bankmenu, 17, read.item("km:coin_gold", 1, "§f4096 snuvis"));*/
 
-msg("dev", "§bSurvival §rloaded.");
+msg.string("dev", "§bSurvival §rloaded.");
 @wait
 wait();
 if(event == "player_move") {
@@ -165,16 +161,9 @@ if(event == "player_move") {
 	goto("wait");
 }
 //Wenn Event aus Survival-Welten, dann wird er verarbeitet
-if(event == "living_death" || event == "living_pre_hurt") {
+if(event == "living_death") {
 	loc = entity.getLocation(living_entity);
-} elseif(event == "ender_teleport") {
-	loc = location;
-} elseif(event == "pre_explosion") {
-	loc = location;
-} elseif(event == "mob_griefing") {
-	if(entity == null) {
-		goto("wait");
-	}
+} elseif(event == "explosion" || event == "entity_damage") {
 	loc = entity.getLocation(entity);
 } else {
 	loc = entity.getLocation(player);
@@ -185,80 +174,34 @@ if(world.isSurvName(world_name)) {
 }
 goto("wait");
 
-@ender_teleport
-if(!isPlayer(living_entity)) {
-	goto("wait");
-}
-player = living_entity;
-if(player.isOnAdventure(player)) {
-	cancel = true;
-	msg.prefix(player, "§5Adventure", "Using Enderpearls during adventures? Nope!");
-	goto("wait");
-}
-//Verhindert während eines (Abenteuer-)Teleports, die Benutzung der Enderperle
-player_uuid = player.getUuid(player);
-if(set.contains(tp_set, player_uuid)) {
-	cancel = true;
-	msg.prefix(player, "§5Adventure", "Using Enderpearls during adventures? Nope!");
-}
-goto("wait");
-
-@item_air_click
-player_loc = entity.getLocation(player);
-world = loc.getWorld(player_loc);
-if(world.getName(world) != "overworld") {
-	goto("wait");
-}
-item = living.getEquip(player, read.slot("HAND"));
-if(item.getType(item) != "minecraft:clock") {
-	goto("wait");
-}
-time = world.getTime(world);
-time_h = math.roundDown(time/1000) + 6;
-while(time_h >= 24) {
-	time_h -= 24;
-}
-//m min = t ticks * 60m / 1000 ticks
-time_m = time%1000;
-time_m = math.roundDown(time_m * 60 / 1000);
-if(time_m < 10) {
-	time_m = concat("0", text.number(time_m));
-} else {
-	time_m = text.number(time_m);
-}
-msg.prefix(player, "§eClock", concat(text.number(time_h), ":", time_m));
-goto("wait");
-
-@mob_griefing
-if(entity.getType(entity) == "enderman") {
-	cancel = true;
-}
-goto("wait");
-
-@pre_explosion
-plot_list = plot.get(location);
-for(i = 0; i < list.getSize(plot_list); i++) {
+@explosion
+plot_list = plot.get(loc);
+plot_amount = list.getSize(plot_list);
+for(i = 0; i < plot_amount; i++) {
 	plot = list.getIndex(plot_list, i);
 	if(plot.isExplosive(plot)) {
 		cancel = false;
+	} else {
+		cancel = true;
+		break;
 	}
 }
 //Kein Grundstück existiert
-if(i == 0) {
+if(plot_amount == 0) {
 	cancel = false;
 }
 goto("wait");
 
-@living_pre_hurt
-if(!isPlayer(living_entity)) {
+@entity_damage
+if(!isPlayer(entity)) {
 	damager = player.getFromDamageSource(damage_source);
 	if(!isPlayer(damager)) {
 		goto("wait");
 	}
-	pet_type = entity.getType(living_entity);
+	pet_type = entity.getType(entity);
 	if(pet_type == "wolf" || pet_type == "cat" || pet_type == "parrot" || pet_type == "horse") {
-		if(pet.isTamed(living_entity)) {
-			owner_uuid = pet.getOwner(living_entity);
+		if(pet.isTamed(entity)) {
+			owner_uuid = pet.getOwner(entity);
 			if(owner_uuid == player.getUuid(damager)) {
 				if(player.getNoPetDamage(damager)) {
 					cancel = true;
@@ -268,13 +211,9 @@ if(!isPlayer(living_entity)) {
 	}
 	goto("wait");
 }
-player = living_entity;
+player = entity;
 damager = player.getFromDamageSource(damage_source);
-if(!isPlayer(damager)) {
-	player_loc = entity.getLocation(player);
-	if(loc.hasPlotId(player_loc, 128) && damage.getType(damage_source) == "fall") {
-		cancel = true;
-	}
+if(damager == null) {
 	goto("wait");
 }
 if(player == damager) {
@@ -287,7 +226,7 @@ if(!hasPvpOn(damager)) {
 }
 if(!hasPvpOn(player)) {
 	cancel = true;
-	msg.prefix(damager, "§5PvP", concat(player.getName(player), " has PvP disabled."));
+	msg.prefix(damager, "§5PvP", string.concat(player.getName(player), " has PvP disabled."));
 	goto("wait");
 }
 goto("wait");
@@ -365,7 +304,7 @@ if(entity.getType(entity) == "human") {
 		item_name = item.getName(item);
 		if(removeFormat(item_name) == "Beer") {
 			msg.prefix(player, "§cMentorMentos", "Folg mir auf Twitch! ");
-			msg(player, text.link("Klick mich an :D","https://www.twitch.tv/Mentor_Mentos"));
+			msg(player, string.getLinkText("Klick mich an :D","https://www.twitch.tv/Mentor_Mentos"));
 		}
 		else{
 			msg.prefix(player, "§cMentorMentos", "Ich mag Kölsch.");
@@ -439,18 +378,18 @@ if(entity.getType(entity) == "human") {
 	
 	if(entity_name == "Info-Point") {
 		msg(player, string.getSpacer());
-		msg(player, text.click("§r [§cclick§r] [§eSurvival§r]", "/infopoint1"));
-		msg(player, text.click("§r [§cclick§r] [§eAdventure§r]", "/infopoint2"));
-		msg(player, text.click("§r [§cclick§r] [§ePlots§r]", "/infopoint3"));
-		msg(player, text.click("§r [§cclick§r] [§eClans§r]", "/infopoint4"));
-		msg(player, text.click("§r [§cclick§r] [§eCities§r]", "/infopoint5"));
-		msg(player, text.click("§r [§cclick§r] [§eShops§r]", "/infopoint6"));
-		msg(player, text.click("§r [§cclick§r] [§eMinigames§r]", "/infopoint7"), " ", text.click("§f[§bTeleport§f]", "/games"));
-		msg(player, text.click("§r [§cclick§r] [§eQuests§r]", "/infopoint8"), " ", text.click("§f[§bTeleport§f]", "/story"));
-		msg(player, text.click("§r [§cclick§r] [§eCreative§r]", "/infopoint12"), " ", text.click("§f[§bTeleport§f]", "/creative"));
-		msg(player, text.click("§r [§cclick§r] [§eRanking§r]", "/infopoint9"), " ", text.link("§f[§bRanks§f]", "https://minecraft.hammerle.me/?site=ranks"));
-		msg(player, text.click("§r [§cclick§r] [§eRules§r]", "/infopoint10"), " ", text.link("§f[§bFake Rules§f]", "https://minecraft.hammerle.me/?site=rules"));
-		msg(player, text.click("§r [§cclick§r] [§eNote§r]", "/infopoint11"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eSurvival§r]", "/infopoint1"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eAdventure§r]", "/infopoint2"));
+		msg(player, string.getClickText("§r [§cclick§r] [§ePlots§r]", "/infopoint3"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eClans§r]", "/infopoint4"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eCities§r]", "/infopoint5"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eShops§r]", "/infopoint6"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eMinigames§r]", "/infopoint7"), " ", string.getClickText("§f[§bTeleport§f]", "/games"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eQuests§r]", "/infopoint8"), " ", string.getClickText("§f[§bTeleport§f]", "/story"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eCreative§r]", "/infopoint12"), " ", string.getClickText("§f[§bTeleport§f]", "/creative"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eRanking§r]", "/infopoint9"), " ", string.getLinkText("§f[§bRanks§f]", "https://minecraft.hammerle.me/?site=ranks"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eRules§r]", "/infopoint10"), " ", string.getLinkText("§f[§bFake Rules§f]", "https://minecraft.hammerle.me/?site=rules"));
+		msg(player, string.getClickText("§r [§cclick§r] [§eNote§r]", "/infopoint11"));
 		goto("wait");
 	}
 	if(entity_name == "Banker") {
@@ -484,13 +423,13 @@ if(entity.getType(entity) == "human") {
 }
 goto("wait");
 
-@player_login
+@player_join
 if(player.isOnAdventure(player)) {
 	addAdventureDisplay(player, adventure_aim_loc);
 }
 goto("wait");
 
-@container_click
+@inv_click
 //Verhindert während eines (Abenteuer-)Teleports, die Benutzung des Spielerinventars (inkl. Crafting-Bereich!)
 player_uuid = player.getUuid(player);
 if(set.contains(tp_set, player_uuid)) {
@@ -498,7 +437,7 @@ if(set.contains(tp_set, player_uuid)) {
 }
 goto("wait");
 
-@inv_click
+@snuvi_click
 if(inv_id == bankinvid) { //Bankmenü
 	factor = 1;
 	if(click_type == "QUICK_MOVE") {
@@ -664,9 +603,9 @@ if(inv_id == gambler_inv_id) {
 		temp = " lost ";
 	}
 	if(amount == 1) {
-		message = concat(player.getName(player), temp, text.number(amount), " snuvi.");
+		message = string.concat(player.getName(player), temp, text.number(amount), " snuvi.");
 	} else {
-		message = concat(player.getName(player), temp, text.number(amount), " snuvis.");
+		message = string.concat(player.getName(player), temp, text.number(amount), " snuvis.");
 	}
 	if(amount < 64) {
 		msg.prefix(player, "§2Gambler", message);
@@ -680,6 +619,9 @@ if(inv_id == gambler_inv_id) {
 goto("wait");
 
 @projectile_hit
+if(shooter == null) {
+	goto("wait");
+}
 if(!isPlayer(shooter)) {
 	goto("wait");
 }
@@ -858,7 +800,33 @@ function shear_cobweb(block_loc, original_block_type, player, unbreaking_level)
 }
 
 @block_click
-if(action == "right" && player.checkHandsForTag(player, dye_tag)) {
+if(action == "RIGHT_CLICK_AIR") {
+	player_loc = entity.getLocation(player);
+	world = loc.getWorld(player_loc);
+	if(world.getName(world) != "overworld") {
+		goto("wait");
+	}
+	item = living.getEquip(player, read.slot("HAND"));
+	if(item.getType(item) != "minecraft:clock") {
+		goto("wait");
+	}
+	time = world.getTime(world);
+	time_h = math.roundDown(time/1000) + 6;
+	while(time_h >= 24) {
+		time_h -= 24;
+	}
+	//m min = t ticks * 60m / 1000 ticks
+	time_m = time%1000;
+	time_m = math.roundDown(time_m * 60 / 1000);
+	if(time_m < 10) {
+		time_m = string.concat("0", text.number(time_m));
+	} else {
+		time_m = text.number(time_m);
+	}
+	msg.prefix(player, "§eClock", string.concat(text.number(time_h), ":", time_m));
+	goto("wait");
+}
+if(action == "RIGHT_CLICK_BLOCK" && player.checkHandsForTag(player, dye_tag)) {
 	/*if(block.hasTag(sign_tag, block)) {
 		if(!perm.has(player, "plot.bypass")) {
 			if(!plot.check(block_loc, player, 3, true)) {
@@ -994,7 +962,7 @@ if(block_loc == lottery_loc_1 || block_loc == lottery_loc_2) {
 	if(win == 1) {
 		addMoney(player, amount);
 		lottery.set(block_loc, 0);
-		message = concat(player.getName(player), " has won ", text.number(amount), " snuvis.");
+		message = string.concat(player.getName(player), " has won ", text.number(amount), " snuvis.");
 		msg.radius(prefix_money, message, block_loc, 50);
 	}
 	goto("wait");
@@ -1010,7 +978,7 @@ if(isPlayer(living_entity)) {
 	if(skill.isActivated(player, "skill.subcu_inv") && amount > 0) {
 		new_amount = amount - 1;
 		skill.setAmount(player, "skill.subcu_inv", new_amount);
-		msg.prefix(player, prefix_skill, concat("Used Subcutaneous Inventory. New amount: ", text.number(new_amount)));
+		msg.prefix(player, prefix_skill, string.concat("Used Subcutaneous Inventory. New amount: ", text.number(new_amount)));
 	} else {
 		player.dropInventory(player, loc);
 	}
@@ -1073,7 +1041,7 @@ if(set.contains(survival_respawn, player_uuid)) {
 	if(skill.isActivated(player, "skill.comeback") && amount > 0) {
 		new_amount = amount - 1;
 		skill.setAmount(player, "skill.comeback", new_amount);
-		msg.prefix(player, prefix_skill, concat("Used Comeback. New amount: ", text.number(new_amount)));
+		msg.prefix(player, prefix_skill, string.concat("Used Comeback. New amount: ", text.number(new_amount)));
 		entity.teleport(player, getDeathLoc(player));
 		goto("wait");
 	}
@@ -1117,37 +1085,37 @@ if(adventure) {
 			p_name = player.getName(p);
 			p_loc = entity.getLocation(p);
 			if(!loc.isSameWorld(adventure_chest_loc, p_loc)) {
-				msg.prefix(player, "§5Party", concat(p_name, "§c is in another world."));
+				msg.prefix(player, "§5Party", string.concat(p_name, "§c is in another world."));
 				msg.prefix(p, "§5Party", "§cYou are in another world.");
 				continue;
 			}
 			if(loc.distance(adventure_chest_loc, p_loc) > 5) {
-				msg.prefix(player, "§5Party", concat(p_name, "§c is too far away."));
+				msg.prefix(player, "§5Party", string.concat(p_name, "§c is too far away."));
 				msg.prefix(p, "§5Party", "§cYou are too far away.");
 				continue;
 			}
 			if(player.hasMinigame(p)) {
-				msg.prefix(player, "§5Party", concat(p_name, "§c is in a game."));
+				msg.prefix(player, "§5Party", string.concat(p_name, "§c is in a game."));
 				msg.prefix(p, "§5Party", "§cYou are in a game.");
 				continue;
 			}
 			if(player.hasQuest2(p)) {
-				msg.prefix(player, "§5Party", concat(p_name, "§c is doing a quest."));
+				msg.prefix(player, "§5Party", string.concat(p_name, "§c is doing a quest."));
 				msg.prefix(p, "§5Party", "§cYou are doing a quest.");
 				continue;
 			}
 			if(player.isOnAdventure(p)) {
-				msg.prefix(player, "§5Party", concat(p_name, "§c is already on an adventure."));
+				msg.prefix(player, "§5Party", string.concat(p_name, "§c is already on an adventure."));
 				msg.prefix(p, "§5Party", "§cYou are already on an adventure.");
 				continue;
 			}
 			if(player.isAfk(p)) {
-				msg.prefix(player, "§5Party", concat(p_name, "§c is afk."));
+				msg.prefix(player, "§5Party", string.concat(p_name, "§c is afk."));
 				msg.prefix(p, "§5Party", "§cYou are afk.");
 				continue;
 			}
 			if(!player.hasClearInventory(p)) {
-				msg.prefix(player, "§5Party", concat(p_name, "§c has no clear inventory."));
+				msg.prefix(player, "§5Party", string.concat(p_name, "§c has no clear inventory."));
 				msg.prefix(p, "§5Party", "§cYou have no clear inventory.");
 				continue;
 			}
@@ -1188,7 +1156,7 @@ function lottery.set(location, amount) {
 		snuvi.debug("Lottery error");
 		return;
 	}
-	entity.setName(text_entity, concat("Snuvis to win: ", text.number(amount)), true);
+	entity.setName(text_entity, string.concat("Snuvis to win: ", text.number(amount)), true);
 }
 
 function lottery.add(location, amount) {
@@ -1201,7 +1169,7 @@ function lottery.add(location, amount) {
 		return null;
 	}
 	amount = text.convert(text.subString(name, 15, text.length(name))) + 1;
-	entity.setName(text_entity, concat("Snuvis to win: ", text.number(amount)), true);
+	entity.setName(text_entity, string.concat("Snuvis to win: ", text.number(amount)), true);
 	return amount;
 }
 

+ 37 - 44
system/chat.txt

@@ -89,25 +89,18 @@ if(event == "living_death") {
 }
 player_name = player.getName(player);
 nickname = player.getNickname(player);
-player_id = player.getId(player);
-//Wenn der Spieler keinen Nicknamen hat, werden die personalisierten Nachrichten geschickt, falls solche vorhanden sind
-if(string.removeFormat(nickname) == player_name) {
-	send_personally_messages = true;
-} else {
-	send_personally_messages = false;
-}
 fullname = player.getFullName(player);
 ignoreGoto(event);
 goto("wait");
 
 @player_join
-first_join = player.isFirstJoin(player_id);
+first_join = player.isFirstJoin(player);
 if(first_join) {
 	entity.teleport(player, serverspawn);
 	msg.string("online", string.getSpacer());
 	msg.string("online", string.concat(" §d§k# §eWelcome to our sick world §b", player_name, " §e!!! §d§k#"));
 	msg.string("online", string.getSpacer());
-	player.setFirstJoin(player_id, true);
+	player.setFirstJoin(player, true);
 }
 player.setHeadName(player);
 silentjoin = player.getSilentJoin(player);
@@ -115,7 +108,7 @@ if(silentjoin) {
 	message = null;
 } else {
 	own_message = player.getJoinMessage(player);
-	if(own_message == null || !send_personally_messages) {
+	if(own_message == null || player.isNicked(player)) {
 		message = text.new(string.concat("§a§l> §r", fullname, " §9", list.getIndex(joinmessages, math.random(0, list.getSize(joinmessages) - 1))));
 	} else {
 		message = text.new(string.concat("§a§l> §r", fullname, " §9", own_message));
@@ -123,24 +116,13 @@ if(silentjoin) {
 }
 player_loc = entity.getLocation(player);
 //Inventory
-//inv.loadFromPlayer(player, player, loc.getWorld(player_loc));
-//Keks geben, wenn man als einziger Spieler auf den Server joint und im Survival-Mode ist und der letzte Keks vor 5 Minuten vergeben wurde
-if(players.getAmount() == 1) {
-	if(!loc.isInGamesWorld(player_loc)) {
-		if(player.isSurvival(player)) {
-			now_time = time.getMillis();
-			if(now_time - cookie_time > 300000) {
-				cookie_time = now_time;
-				msg.string(player, "§dHere is a cookie for you :D");
-				player.safeGiveItem(player, cookie);
-			}
-		}
-	}
-}
+inv.loadFromPlayer(player, player, loc.getWorld(player_loc));
+giveCookie(player);
 player.setTabName(player);
-//player.greet(player);
+player.greet(player);
+sb.setTitle(player, text.new("§0~ §fMundus Crassus §0~"));
 rank.offerTimeScheduled(player);
-//displayMoney(player, getMoney(player));
+money.display(player, getMoney(player));
 if(perm.has("isDev", player)) {
 	error_size = error.getSize();
 	if(error_size > 0) {
@@ -149,14 +131,29 @@ if(perm.has("isDev", player)) {
 }
 goto("wait");
 
+function giveCookie(player) {
+	if(players.getAmount() != 1) {
+		return;
+	}
+	if(!player.isSurvival(player)) {
+		return;
+	}
+	now_time = time.getMillis();
+	if(now_time - $cookie_time > 300000) {
+		$cookie_time = now_time;
+		msg.string(player, "§dHere is a cookie for you :D");
+		player.safeGiveItem(player, $cookie);
+	}
+}
+
 @player_quit
-message = player.getLeaveMessage(player);
-if(message == null || !send_personally_messages) {
+own_message = player.getLeaveMessage(player);
+if(own_message == null || player.isNicked(player)) {
 	message = text.new(string.concat("§c§l> §r", fullname, " §9", list.getIndex(leavemeassages, math.random(0, list.getSize(leavemeassages) - 1))));
 } else {
-	message = text.new(string.concat("§c§l> §r", fullname, " §9", message));
+	message = text.new(string.concat("§c§l> §r", fullname, " §9", own_message));
 }
-//inv.saveForPlayer(player, player, loc.getWorld(entity.getLocation(player)));
+inv.saveForPlayer(player, player, loc.getWorld(entity.getLocation(player)));
 player.clearBackPos(player);
 rank.removeTimeOffert(player);
 goto("wait");
@@ -186,7 +183,7 @@ if(player.isMuted(player)) {
 	goto("wait");
 }
 if(perm.has("color", player)) {
-	//message = string.replace(message, "&", "§");
+	message = text.new(string.replace(string.text(message), "&", "§"));
 }
 if(string.startsWith(message, "https://", 0)) {
 	message = string.getLinkText(message, message);
@@ -209,31 +206,27 @@ if(damage_type == "player") {
 	killer = player.getFromDamageSource(damage_source);
 	killer_name = player.getName(killer);
 	item = living.getEquip(killer, read.slot("HAND"));
-	if(item.hasName(item)) {
-		message1 = string.concat(death_prefix, fullname, colorcodedeath, " killed by ", killer_name, " with ");
-		message2 = item.getFullText(item);
+	//if(item.hasName(item)) {
+	//	message1 = string.concat(death_prefix, fullname, colorcodedeath, " killed by ", killer_name, " with ");
+//		message2 = item.getFullText(item);
 		//message = text.concat2(message1, message2);
-	} else {
+	//} else {
 		list.clear(list);
 		list.add(list, string.concat(death_prefix, fullname, colorcodedeath, " got their last honour from ", killer_name, "."));
 		list.add(list, string.concat(death_prefix, fullname, colorcodedeath, " died by ", killer_name, "'s hand."));
 		list.add(list, string.concat(death_prefix, fullname, colorcodedeath, " was killed by ", killer_name, "."));
 		list.add(list, string.concat(death_prefix, fullname, colorcodedeath, " lost a bet to ", killer_name, "."));
-		message = list.getIndex(list, math.random(0, list.getSize(list) - 1));
-	}
+		message = text.new(list.getIndex(list, math.random(0, list.getSize(list) - 1)));
+	//}
 } else {
-	message = string.concat(death_prefix, fullname, list.getIndex(list, math.random(0, list.getSize(list) - 1)));
+	message = text.new(string.concat(death_prefix, fullname, list.getIndex(list, math.random(0, list.getSize(list) - 1))));
 }
 msg.survival(message);
 msg.creative(message);
-msg.story(message);
 goto("wait");
 
 function player.greet(player) {
-	player_name = player.getName(player);
-	title.reset(player);
-	title.setSub(player, string.concat("§cNice to see you §6", player_name));
-	title.send(player, "");
+	title.send(player, text.new("§cNice to see you §6"), text.new(player.getName(player)));
 }
 
 function rank.removeTimeOffert(player) {
@@ -288,4 +281,4 @@ while(hasNext(iter)) {
 	}
 }
 sgoto(1200, "minute_loop");
-goto("wait");
+goto("wait");

+ 1 - 1
system/chestshops.txt

@@ -39,7 +39,7 @@ factor = 1;
 if(click == "SHIFT_LEFT") {
 	factor = 8;
 }
-adminshop = isAdminShop(sign_loc);
+adminshop = isAdminShop(block.get(sign_loc));
 buy_price = shop.getBuyPrice(inv) * factor;
 sell_price = shop.getSellPrice(inv) * factor;
 chestloc1 = loc.mod(sign_loc, 0, -1, 0);

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 225 - 309
system/commands.txt


+ 3 - 0
system/doors.txt

@@ -31,6 +31,9 @@ if(block == null) {
 	goto("main");
 }
 if(block.hasTag(block, auto_door_tag) && action == "RIGHT_CLICK_BLOCK") {
+	if(cancel) {
+		goto("main");
+	}
 	player_spec = player.getAutoCloseDoor(player);
 	open_value = block.isOpen(block);
 	if(block.hasTag(block, doors_tag)) {

+ 1 - 0
system/init.txt

@@ -11,6 +11,7 @@ setScriptVar("nicknames", map.new());
 setScriptVar("rmInventories", map.new());
 setScriptVar("quest_ids", map.new());
 setScriptVar("lobbylastpos", map.new());
+setScriptVar("scheduler_list", list.new());
 
 //---------- Tables ----------
 

+ 32 - 15
system/market.txt

@@ -23,6 +23,15 @@ inv.setItem(farmer, 3, newItem(material.get("BEETROOT")));
 inv.setItem(farmer, 4, newItem(material.get("MELON")));
 inv.setItem(farmer, 5, newItem(material.get("PUMPKIN")));
 set.add(openMarkets, inv.getId(farmer));
+// Baker
+baker = inv.new("222222222", text.new("Baker"));
+inv.setItem(baker, 0, newItem(material.get("BREAD")));
+inv.setItem(baker, 1, newItem(material.get("CAKE")));
+inv.setItem(baker, 2, newItem(material.get("COOKIE")));
+set.add(openMarkets, inv.getId(baker));
+// Tavern
+tavern = inv.new("222222222", text.new("Tavern"));
+set.add(openMarkets, inv.getId(tavern));
 
 event.load("entity_click");
 event.load("snuvi_click");
@@ -46,13 +55,15 @@ function save() {
 
 function giveSnuvis(player, amount) {
     msg(player, text.new(string.concat("§eYou got §6", string.number(amount), "§e Snuvis.")));
-    // actually remove the players snuvis
+	money.add(player, amount);
+}
+
+function hasSnuvis(player, amount) {
+    return hasEnoughMoney(player, amount);
 }
 
 function removeSnuvis(player, amount) {
-    // msg(player, text.new("§cYou don't have enough snuvis."));
-    // return true if the player does not have enough snuvis
-    return false;
+	money.sub(player, amount);
 }
 
 function calculatePrices(material) {
@@ -130,16 +141,18 @@ goto("loop");
 if(hand == mainHand) {
     goto("loop");
 }
-text_name = entity.getName(entity);
-if(text_name == null) {
+if(entity.getType(entity) != "human") {
     goto("loop");
 }
-name = string.text(text_name);
-
-if(string.startsWith(name, "Miner", 0)) {
+name = human.getName(entity);
+if(string.contains(name, "Miner", 0)) {
     inv.open(miner, player);
-} elseif(string.startsWith(name, "Farmer", 0)) {
+} elseif(string.contains(name, "Farmer", 0)) {
     inv.open(farmer, player);
+} elseif(string.contains(name, "Baker", 0)) {
+    inv.open(baker, player);
+} elseif(string.contains(name, "Alena", 0)) {
+    inv.open(tavern, player);
 }
 
 goto("loop");
@@ -168,14 +181,18 @@ for(i = 0; i < clicks; i++) {
         msg(player, text.new("§cThis item is out of stock."));
         break;
     }
-    // buy
-    if(removeSnuvis(player, buySnuviAmount)) {
+    if(!hasSnuvis(player, buySnuviAmount)) {
+        msg(player, text.new("§cYou don't have enough snuvis."));
         break;
     }
-    lostSnuvis += buySnuviAmount;
     buyItem = item.new(material);
     item.setAmount(buyItem, buyAmount);
-    player.giveItem(player, buyItem); // do this safely
+    if(player.addItem(player, buyItem) > 0) {
+        msg(player, text.new("§cYour inventory is too full."));
+        break;
+    }
+    removeSnuvis(player, buySnuviAmount);    
+    lostSnuvis += buySnuviAmount;
     config.set(stock, material, onStock - buyAmount);
 }
 if(lostSnuvis > 0) {
@@ -193,7 +210,7 @@ gotSnuvis = 0;
 for(i = 0; i < clicks; i++) {
     calculatePrices(material);
     sellItem = item.new(material);
-    amount = player.getItemAmount(player, true, sellItem);
+    amount = player.getItemAmount(player, sellItem);
     if(amount < sellAmount) {
         msg(player, text.new("§cYou don't have enough of this item."));
         break;

+ 273 - 248
system/perms.txt

@@ -1,27 +1,35 @@
-permgroup_ids = list.new();
-grouplists = map.new();
+modTimer(-100);
 
-perm.addGroup(0, "user");
-perm.addGroup(1, "owner");
-perm.addGroup(2, "admin");
-perm.addGroup(3, "moderator");
-perm.addGroup(4, "supporter");
-perm.addGroup(5, "developer");
-perm.addGroup(6, "devmaster");
-perm.addGroup(7, "buider");
-perm.addGroup(8, "streamer");
-perm.addGroup(9, "yt");
-perm.addGroup(10, "vip");
-perm.addGroup(11, "sponsor");
-perm.addGroup(12, "creative");
-perm.addGroup(13, "worldedit");
-perm.addGroup(14, "simuser");
+databank.workerExecute(databank.prepare("
+	CREATE TABLE IF NOT EXISTS new_playerperms (
+		player_id INT NOT NULL, 
+		perm_id INT NOT NULL, 
+		PRIMARY KEY(player_id, perm_id)
+	);
+"));
+
+permgroups = array.new(15, 4);
+perm.addGroup(0, "user", "3User", false);
+perm.addGroup(1, "owner", "4Owner", true);
+perm.addGroup(2, "admin", "cAdmin", true);
+perm.addGroup(3, "moderator", "9Moderator", true);
+perm.addGroup(4, "supporter", "bSupporter", true);
+perm.addGroup(5, "developer", "5Developer", true);
+perm.addGroup(6, "devmaster", null, true);
+perm.addGroup(7, "builder", "5Builder", true);
+perm.addGroup(8, "streamer", "dInfluencer", true);
+perm.addGroup(9, "yt", "dInfluencer", true);
+perm.addGroup(10, "vip", "dVIP", true);
+perm.addGroup(11, "sponsor", "dSponsor", true);
+perm.addGroup(12, "creative", null, true);
+perm.addGroup(13, "worldedit", null, true);
+perm.addGroup(14, "simuser", null, false);
+perm.setGroups(permgroups);
 
 perm.addToGroup(0, "isUser");
 perm.addToGroup(0, "afk");
 perm.addToGroup(0, "answer");
 perm.addToGroup(0, "back");
-perm.addToGroup(0, "bug");
 perm.addToGroup(0, "clan");
 perm.addToGroup(0, "creative");
 perm.addToGroup(0, "friend");
@@ -29,6 +37,7 @@ perm.addToGroup(0, "giveup");
 perm.addToGroup(0, "hack");
 perm.addToGroup(0, "help");
 perm.addToGroup(0, "home");
+perm.addToGroup(0, "lag");
 perm.addToGroup(0, "leave");
 perm.addToGroup(0, "list");
 perm.addToGroup(0, "mail");
@@ -41,13 +50,14 @@ perm.addToGroup(0, "pvp");
 perm.addToGroup(0, "questanswer");
 perm.addToGroup(0, "rank");
 perm.addToGroup(0, "setrank");
+perm.addToGroup(0, "settings");
 perm.addToGroup(0, "shop");
 perm.addToGroup(0, "skills");
+perm.addToGroup(0, "skipnight");
 perm.addToGroup(0, "spawn");
 perm.addToGroup(0, "stopadventure");
 perm.addToGroup(0, "story");
 perm.addToGroup(0, "suicide");
-perm.addToGroup(0, "teleportaccept");
 perm.addToGroup(0, "ticket");
 perm.addToGroup(0, "tpa");
 perm.addToGroup(0, "tpaccept");
@@ -60,318 +70,324 @@ perm.addToGroup(0, "warp");
 
 perm.addToGroup(1, "isOwner");
 perm.addToGroup(1, "isTeam");
-perm.addToGroup(1, "datapack");
-perm.addToGroup(1, "reload");
-perm.addToGroup(1, "worldborder");
-perm.addToGroup(1, "op");
-perm.addToGroup(1, "deop");
+perm.addToGroup(1, "bukkit.command.reload");
+perm.addToGroup(1, "minecraft.command.datapack");
+perm.addToGroup(1, "minecraft.command.deop");
+perm.addToGroup(1, "minecraft.command.op");
+perm.addToGroup(1, "minecraft.command.worldborder");
+
 
 perm.addToGroup(2, "isAdmin");
 perm.addToGroup(2, "isTeam");
-perm.addToGroup(2, "news");
-perm.addToGroup(2, "setmessage");
-perm.addToGroup(2, "setmessage.delete");
-perm.addToGroup(2, "bossbar");
-perm.addToGroup(2, "recipe");
-perm.addToGroup(2, "voxel");
-perm.addToGroup(2, "setrank.other");
-perm.addToGroup(2, "setservermessage");
-perm.addToGroup(2, "scoreboard");
 perm.addToGroup(2, "adminshop");
+perm.addToGroup(2, "allsounds");
+perm.addToGroup(2, "ass");
+perm.addToGroup(2, "ban");
+perm.addToGroup(2, "block");
+perm.addToGroup(2, "boost");
+perm.addToGroup(2, "color");
+perm.addToGroup(2, "copyisland");
+perm.addToGroup(2, "coreprotect.co");
+perm.addToGroup(2, "coreprotect.core");
+perm.addToGroup(2, "coreprotect.coreprotect");
+perm.addToGroup(2, "coreprotect.*");
+perm.addToGroup(2, "datatools");
+perm.addToGroup(2, "enchant");
+perm.addToGroup(2, "enderchest");
 perm.addToGroup(2, "entities");
-perm.addToGroup(2, "logo");
-perm.addToGroup(2, "tag");
-perm.addToGroup(2, "team");
+perm.addToGroup(2, "feed");
+perm.addToGroup(2, "fly");
+perm.addToGroup(2, "fly.other");
+perm.addToGroup(2, "gamemode");
+perm.addToGroup(2, "gamemode.other");
+perm.addToGroup(2, "gamerule");
+perm.addToGroup(2, "gamerule.write");
+perm.addToGroup(2, "grow");
+perm.addToGroup(2, "hat");
+perm.addToGroup(2, "head");
+perm.addToGroup(2, "heal");
+perm.addToGroup(2, "home.other");
+perm.addToGroup(2, "human");
+perm.addToGroup(2, "inv");
+perm.addToGroup(2, "inv.ignore");
+perm.addToGroup(2, "inv.loadFrom");
+perm.addToGroup(2, "inv.reload");
+perm.addToGroup(2, "inv.saveFor");
+perm.addToGroup(2, "inv.see");
+perm.addToGroup(2, "iteminfo");
+perm.addToGroup(2, "jail");
+perm.addToGroup(2, "kick");
 perm.addToGroup(2, "mailbox.other");
-perm.addToGroup(2, "advancement");
-perm.addToGroup(2, "experience");
-perm.addToGroup(2, "particle");
-perm.addToGroup(2, "seed");
-perm.addToGroup(2, "playsound");
-perm.addToGroup(2, "allsounds");
-perm.addToGroup(2, "execute");
-perm.addToGroup(2, "playtime.year");
-perm.addToGroup(2, "playtime.month");
-perm.addToGroup(2, "playtime.other");
-perm.addToGroup(2, "startgame.jump");
-perm.addToGroup(2, "hawkeye");
+perm.addToGroup(2, "memory");
+perm.addToGroup(2, "minecraft.command.advancement");
+perm.addToGroup(2, "minecraft.command.banlist");
+perm.addToGroup(2, "minecraft.command.bossbar");
+perm.addToGroup(2, "minecraft.command.clear");
+perm.addToGroup(2, "minecraft.command.data");
+perm.addToGroup(2, "minecraft.command.debug");
+perm.addToGroup(2, "minecraft.command.effect");
+perm.addToGroup(2, "minecraft.command.execute");
+perm.addToGroup(2, "minecraft.command.experience");
+perm.addToGroup(2, "minecraft.command.give");
+perm.addToGroup(2, "minecraft.command.kill");
+perm.addToGroup(2, "minecraft.command.locate");
+perm.addToGroup(2, "minecraft.command.locatebiome");
+perm.addToGroup(2, "minecraft.command.particle");
+perm.addToGroup(2, "minecraft.command.playsound");
+perm.addToGroup(2, "minecraft.command.recipe");
+perm.addToGroup(2, "minecraft.command.scoreboard");
+perm.addToGroup(2, "minecraft.command.seed");
+perm.addToGroup(2, "minecraft.command.summon");
+perm.addToGroup(2, "minecraft.command.tag");
+perm.addToGroup(2, "minecraft.command.team");
+perm.addToGroup(2, "minecraft.command.whitelist");
+perm.addToGroup(2, "lastseen");
+perm.addToGroup(2, "lightning");
+perm.addToGroup(2, "logo");
+perm.addToGroup(2, "mute");
+perm.addToGroup(2, "news");
+perm.addToGroup(2, "nickname");
+perm.addToGroup(2, "nowb");
 perm.addToGroup(2, "perm");
 perm.addToGroup(2, "perm.give");
+perm.addToGroup(2, "perm.list");
 perm.addToGroup(2, "perm.remove");
 perm.addToGroup(2, "perm.removeall");
-perm.addToGroup(2, "perm.list");
 perm.addToGroup(2, "perm.toggle");
-perm.addToGroup(2, "copyisland");
-perm.addToGroup(2, "cli");
-perm.addToGroup(2, "plough");
-perm.addToGroup(2, "plant");
-perm.addToGroup(2, "grow");
-perm.addToGroup(2, "start");
-perm.addToGroup(2, "nowb");
-perm.addToGroup(2, "tip");
+perm.addToGroup(2, "playtime.month");
+perm.addToGroup(2, "playtime.other");
+perm.addToGroup(2, "playtime.year");
+perm.addToGroup(2, "plot.bypass");
+perm.addToGroup(2, "plot.moreinfo");
+perm.addToGroup(2, "plot.other");
+perm.addToGroup(2, "pvp.other");
+perm.addToGroup(2, "quest");
+perm.addToGroup(2, "repair");
+perm.addToGroup(2, "say");
+perm.addToGroup(2, "script");
+perm.addToGroup(2, "script.error");
+perm.addToGroup(2, "seen");
 perm.addToGroup(2, "senditem");
+perm.addToGroup(2, "setmessage");
+perm.addToGroup(2, "setmessage.delete");
+perm.addToGroup(2, "setrank.other");
+perm.addToGroup(2, "setservermessage");
 perm.addToGroup(2, "setspawn");
 perm.addToGroup(2, "setworldspawn");
-perm.addToGroup(2, "gamerule");
-perm.addToGroup(2, "gamerule.write");
-perm.addToGroup(2, "weather");
-perm.addToGroup(2, "heal");
+perm.addToGroup(2, "sign");
+perm.addToGroup(2, "silentban");
+perm.addToGroup(2, "silentjoin");
+perm.addToGroup(2, "silentkick");
+perm.addToGroup(2, "skills.other");
+perm.addToGroup(2, "skull");
 perm.addToGroup(2, "speed");
-perm.addToGroup(2, "iteminfo");
 perm.addToGroup(2, "speed.other");
-perm.addToGroup(2, "home.other");
+perm.addToGroup(2, "start");
+perm.addToGroup(2, "startgame.jump");
+perm.addToGroup(2, "minecraft.command.stop");
+perm.addToGroup(2, "suicide.other");
+perm.addToGroup(2, "teleport");
+perm.addToGroup(2, "teleport.other");
+perm.addToGroup(2, "tempban");
 perm.addToGroup(2, "tempfly");
-perm.addToGroup(2, "fly");
-perm.addToGroup(2, "fly.other");
-perm.addToGroup(2, "ass");
-perm.addToGroup(2, "gamemode");
-perm.addToGroup(2, "gamemode.other");
-perm.addToGroup(2, "enderchest");
-perm.addToGroup(2, "say");
-perm.addToGroup(2, "feed");
-perm.addToGroup(2, "plot.other");
-perm.addToGroup(2, "plot.moreinfo");
-perm.addToGroup(2, "boost");
-perm.addToGroup(2, "yeet");
-perm.addToGroup(2, "whitelist");
-perm.addToGroup(2, "color");
 perm.addToGroup(2, "time");
-perm.addToGroup(2, "world");
-perm.addToGroup(2, "datatools");
-perm.addToGroup(2, "lastseen");
-perm.addToGroup(2, "lightning");
-perm.addToGroup(2, "sign");
-perm.addToGroup(2, "human");
-perm.addToGroup(2, "silentjoin");
-perm.addToGroup(2, "effect");
-perm.addToGroup(2, "tempban");
-perm.addToGroup(2, "banlist");
-perm.addToGroup(2, "spawner");
-perm.addToGroup(2, "summon");
-perm.addToGroup(2, "skull");
-perm.addToGroup(2, "head");
-perm.addToGroup(2, "jail");
+perm.addToGroup(2, "tip");
+perm.addToGroup(2, "top");
 perm.addToGroup(2, "unjail");
-perm.addToGroup(2, "more");
-perm.addToGroup(2, "more.other");
-perm.addToGroup(2, "kill");
-perm.addToGroup(2, "suicide.other");
-perm.addToGroup(2, "hat");
-perm.addToGroup(2, "repair");
-perm.addToGroup(2, "pvp.other");
-perm.addToGroup(2, "inv");
-perm.addToGroup(2, "inv.see");
-perm.addToGroup(2, "inv.reload");
-perm.addToGroup(2, "inv.ignore");
-perm.addToGroup(2, "inv.loadFrom");
-perm.addToGroup(2, "inv.saveFor");
-perm.addToGroup(2, "xp");
-perm.addToGroup(2, "vanish");
-perm.addToGroup(2, "mute");
 perm.addToGroup(2, "unmute");
-perm.addToGroup(2, "silentkick");
-perm.addToGroup(2, "kick");
+perm.addToGroup(2, "vanish");
 perm.addToGroup(2, "warn");
-perm.addToGroup(2, "ban");
-perm.addToGroup(2, "silentban");
-perm.addToGroup(2, "unban");
-perm.addToGroup(2, "pardon");
-perm.addToGroup(2, "memory");
 perm.addToGroup(2, "warp.create");
-perm.addToGroup(2, "grow");
-perm.addToGroup(2, "enchant");
-perm.addToGroup(2, "nickname");
-perm.addToGroup(2, "give");
-perm.addToGroup(2, "data");
-perm.addToGroup(2, "script");
-perm.addToGroup(2, "script.error");
-perm.addToGroup(2, "stop");
-perm.addToGroup(2, "remove");
-perm.addToGroup(2, "clear");
-perm.addToGroup(2, "locate");
-perm.addToGroup(2, "locatebiome");
-perm.addToGroup(2, "quest");
-perm.addToGroup(2, "debug");
+perm.addToGroup(2, "weather");
+perm.addToGroup(2, "world");
+perm.addToGroup(2, "unban");
 perm.addToGroup(2, "user.other");
-perm.addToGroup(2, "skills.other");
-perm.addToGroup(2, "plot.bypass");
+perm.addToGroup(2, "yeet");
 
 perm.addToGroup(3, "isMod");
 perm.addToGroup(3, "isTeam");
-perm.addToGroup(3, "cli");
-perm.addToGroup(3, "speed");
-perm.addToGroup(3, "script.error");
+perm.addToGroup(3, "adminshop");
+perm.addToGroup(3, "ass");
+perm.addToGroup(3, "ban");
+perm.addToGroup(3, "boost");
+perm.addToGroup(3, "coreprotect.co");
+perm.addToGroup(3, "coreprotect.core");
+perm.addToGroup(3, "coreprotect.coreprotect");
+perm.addToGroup(3, "coreprotect.*");
+perm.addToGroup(3, "datatools");
+perm.addToGroup(3, "enchant");
+perm.addToGroup(3, "feed");
+perm.addToGroup(3, "fly");
+perm.addToGroup(3, "fly.other");
+perm.addToGroup(3, "gamemode");
+perm.addToGroup(3, "gamerule");
+perm.addToGroup(3, "grow");
+perm.addToGroup(3, "heal");
+perm.addToGroup(3, "home.other");
+perm.addToGroup(3, "human");
 perm.addToGroup(3, "inv");
 perm.addToGroup(3, "inv.ignore");
-perm.addToGroup(3, "inv.see");
 perm.addToGroup(3, "inv.reload");
-perm.addToGroup(3, "feed");
+perm.addToGroup(3, "inv.see");
+perm.addToGroup(3, "kick");
 perm.addToGroup(3, "mailbox.other");
+perm.addToGroup(3, "memory");
+perm.addToGroup(3, "minecraft.command.give");
+perm.addToGroup(3, "minecraft.command.kill");
 perm.addToGroup(3, "mute");
-perm.addToGroup(3, "quest");
-perm.addToGroup(3, "unmute");
-perm.addToGroup(3, "heal");
+perm.addToGroup(3, "lastseen");
+perm.addToGroup(3, "logo");
 perm.addToGroup(3, "nickname");
-perm.addToGroup(3, "playtime.year");
+perm.addToGroup(3, "perm");
+perm.addToGroup(3, "perm.give");
+perm.addToGroup(3, "perm.list");
+perm.addToGroup(3, "perm.remove");
+perm.addToGroup(3, "perm.toggle");
+perm.addToGroup(3, "playsound");
 perm.addToGroup(3, "playtime.month");
 perm.addToGroup(3, "playtime.other");
-perm.addToGroup(3, "logo");
-perm.addToGroup(3, "give");
-perm.addToGroup(3, "grow");
-perm.addToGroup(3, "home.other");
+perm.addToGroup(3, "playtime.year");
+perm.addToGroup(3, "plot.bypass");
+perm.addToGroup(3, "plot.other");
+perm.addToGroup(3, "quest");
+perm.addToGroup(3, "script.error");
+perm.addToGroup(3, "seen");
 perm.addToGroup(3, "setmessage");
-perm.addToGroup(3, "enchant");
-perm.addToGroup(3, "memory");
-perm.addToGroup(3, "silentkick");
-perm.addToGroup(3, "kill");
-perm.addToGroup(3, "suicide.other");
-perm.addToGroup(3, "kick");
-perm.addToGroup(3, "warn");
-perm.addToGroup(3, "ban");
+perm.addToGroup(3, "sign");
 perm.addToGroup(3, "silentban");
-perm.addToGroup(3, "unban");
-perm.addToGroup(3, "pardon");
-perm.addToGroup(3, "tempban");
+perm.addToGroup(3, "silentkick");
 perm.addToGroup(3, "silentjoin");
-perm.addToGroup(3, "human");
-perm.addToGroup(3, "sign");
-perm.addToGroup(3, "lastseen");
-perm.addToGroup(3, "datatools");
-perm.addToGroup(3, "playsound");
-perm.addToGroup(3, "gamemode");
-perm.addToGroup(3, "ass");
-perm.addToGroup(3, "perm");
-perm.addToGroup(3, "perm.give");
-perm.addToGroup(3, "perm.remove");
-perm.addToGroup(3, "perm.list");
-perm.addToGroup(3, "perm.toggle");
-perm.addToGroup(3, "adminshop");
+perm.addToGroup(3, "skills.other");
+perm.addToGroup(3, "speed");
 perm.addToGroup(3, "startgame.jump");
-perm.addToGroup(3, "user.other");
-perm.addToGroup(3, "gamerule");
+perm.addToGroup(3, "suicide.other");
+perm.addToGroup(3, "teleport");
+perm.addToGroup(3, "teleport.other");
+perm.addToGroup(3, "tempban");
 perm.addToGroup(3, "tempfly");
-perm.addToGroup(3, "hawkeye");
-perm.addToGroup(3, "fly");
-perm.addToGroup(3, "fly.other");
-perm.addToGroup(3, "plot.other");
+perm.addToGroup(3, "top");
+perm.addToGroup(3, "unban");
+perm.addToGroup(3, "unmute");
+perm.addToGroup(3, "user.other");
+perm.addToGroup(3, "warn");
 perm.addToGroup(3, "warp.create");
-perm.addToGroup(3, "boost");
 perm.addToGroup(3, "yeet");
-perm.addToGroup(3, "skills.other");
 
 perm.addToGroup(4, "isSupporter");
 perm.addToGroup(4, "isTeam");
-perm.addToGroup(4, "tip");
-perm.addToGroup(4, "setmessage");
-perm.addToGroup(4, "warn");
-perm.addToGroup(4, "kick");
-perm.addToGroup(4, "tempban");
 perm.addToGroup(4, "allsounds");
 perm.addToGroup(4, "color");
+perm.addToGroup(4, "kick");
 perm.addToGroup(4, "perm");
 perm.addToGroup(4, "perm.toggle");
+perm.addToGroup(4, "setmessage");
 perm.addToGroup(4, "skills.other");
+perm.addToGroup(4, "tempban");
+perm.addToGroup(4, "tip");
+perm.addToGroup(4, "warn");
 	
 perm.addToGroup(5, "isDev");
 perm.addToGroup(5, "isTeam");
+perm.addToGroup(5, "allsounds");
 perm.addToGroup(5, "color");
-perm.addToGroup(5, "particle");
-perm.addToGroup(5, "setmessage");
-perm.addToGroup(5, "xp");
-perm.addToGroup(5, "quest");
+perm.addToGroup(5, "databank");
 perm.addToGroup(5, "entities");
-perm.addToGroup(5, "var");
-perm.addToGroup(5, "tip");
-perm.addToGroup(5, "script");
-perm.addToGroup(5, "script.error");
+perm.addToGroup(5, "error");
+perm.addToGroup(5, "errordebug");
 perm.addToGroup(5, "iteminfo");
-perm.addToGroup(5, "databank");
-perm.addToGroup(5, "start");
-perm.addToGroup(5, "effect");
-perm.addToGroup(5, "allsounds");
+perm.addToGroup(5, "minecraft.command.effect");
+perm.addToGroup(5, "minecraft.command.experience");
+perm.addToGroup(5, "minecraft.command.particle");
 perm.addToGroup(5, "perm");
 perm.addToGroup(5, "perm.toggle");
-perm.addToGroup(5, "error");
-perm.addToGroup(5, "errordebug");
-perm.addToGroup(5, "warp.create");
+perm.addToGroup(5, "quest");
+perm.addToGroup(5, "script");
+perm.addToGroup(5, "script.error");
+perm.addToGroup(5, "setmessage");
 perm.addToGroup(5, "skills.other");
+perm.addToGroup(5, "start");
+perm.addToGroup(5, "tip");
+perm.addToGroup(5, "top");
+perm.addToGroup(5, "var");
+perm.addToGroup(5, "warp.create");
 
 perm.addToGroup(6, "isSnuviMaster");
+perm.addToGroup(6, "bukkit.command.reload");
 perm.addToGroup(6, "game");
-perm.addToGroup(6, "stats.remove");
+perm.addToGroup(6, "mail.reset");
+perm.addToGroup(6, "minecraft.command.datapack");
+perm.addToGroup(6, "minecraft.command.deop");
+perm.addToGroup(6, "minecraft.command.op");
+perm.addToGroup(6, "minecraft.command.worldborder");
 perm.addToGroup(6, "removeinvstats");
 perm.addToGroup(6, "removesfstats");
-perm.addToGroup(6, "mail.reset");
-perm.addToGroup(6, "datapack");
-perm.addToGroup(6, "reload");
-perm.addToGroup(6, "hawkeye.entries");
-perm.addToGroup(6, "worldborder");
-perm.addToGroup(6, "op");
-perm.addToGroup(6, "deop");
+perm.addToGroup(6, "stats.remove");
 
 perm.addToGroup(7, "isBuilder");
 perm.addToGroup(7, "isTeam");
-perm.addToGroup(7, "setmessage");
-perm.addToGroup(7, "voxel");
-perm.addToGroup(7, "warp.create");
-perm.addToGroup(7, "perm");
-perm.addToGroup(7, "perm.toggle");
-perm.addToGroup(7, "tip");
-perm.addToGroup(7, "setblock");
-perm.addToGroup(7, "summon");
-perm.addToGroup(7, "human");
-perm.addToGroup(7, "logo");
+perm.addToGroup(7, "allsounds");
+perm.addToGroup(7, "ass");
+perm.addToGroup(7, "color");
+perm.addToGroup(7, "datatools");
 perm.addToGroup(7, "fly");
 perm.addToGroup(7, "gamemode");
-perm.addToGroup(7, "skull");
-perm.addToGroup(7, "give");
+perm.addToGroup(7, "grow");
 perm.addToGroup(7, "head");
-perm.addToGroup(7, "ass");
+perm.addToGroup(7, "human");
+perm.addToGroup(7, "logo");
+perm.addToGroup(7, "minecraft.command.give");
+perm.addToGroup(7, "minecraft.command.summon");
+perm.addToGroup(7, "perm");
+perm.addToGroup(7, "perm.toggle");
+perm.addToGroup(7, "setblock");
+perm.addToGroup(7, "setmessage");
 perm.addToGroup(7, "sign");
-perm.addToGroup(7, "color");
-perm.addToGroup(7, "grow");
-perm.addToGroup(7, "datatools");
+perm.addToGroup(7, "skull");
 perm.addToGroup(7, "speed");
-perm.addToGroup(7, "plough");
-perm.addToGroup(7, "plant");
-perm.addToGroup(7, "allsounds");
+perm.addToGroup(7, "tip");
+perm.addToGroup(7, "top");
+perm.addToGroup(7, "warp.create");
 
 perm.addToGroup(8, "isStreamer");
 perm.addToGroup(8, "live");
+perm.addToGroup(8, "news");
 perm.addToGroup(8, "setmessage");
 
 perm.addToGroup(9, "isYT");
+perm.addToGroup(9, "news");
 perm.addToGroup(9, "setmessage");
 
 perm.addToGroup(10, "isVIP");
+perm.addToGroup(10, "allsounds");
+perm.addToGroup(10, "color");
 perm.addToGroup(10, "fly");
 perm.addToGroup(10, "hat");
-perm.addToGroup(10, "ride");
+perm.addToGroup(10, "perm");
+perm.addToGroup(10, "perm.toggle");
 perm.addToGroup(10, "playtime.year");
 perm.addToGroup(10, "playtime.month");
 perm.addToGroup(10, "playtime.other");
-perm.addToGroup(10, "lastseen");
+perm.addToGroup(10, "ride");
 perm.addToGroup(10, "setmessage");
-perm.addToGroup(10, "color");
-perm.addToGroup(10, "allsounds");
-perm.addToGroup(10, "perm");
-perm.addToGroup(10, "perm.toggle");
 
 perm.addToGroup(11, "isSponsor");
-perm.addToGroup(11, "setmessage");
 perm.addToGroup(11, "color");
 perm.addToGroup(11, "hat");
+perm.addToGroup(11, "setmessage");
 
 //Building perms for creative world
 perm.addToGroup(12, "creative");
 
-perm.addToGroup(13, "/pos1");
+perm.addToGroup(13, "worldedit.*");
 
 //Perm-Group zur User-Simulation
 perm.addToGroup(14, "simuser");
 perm.addToGroup(14, "perm");
 perm.addToGroup(14, "perm.toggle");
 
+perm.loadDatabank();
+perm.initOnlinePlayers();
+
 event.load("player_join");
 
 msg.string("dev", "§bPerms §rloaded.");
@@ -382,18 +398,11 @@ if(event == "player_join") {
 }
 goto("wait");
 
-function perm.initPlayer(player) {
-	perm.addGroupToPlayer(0, player);
-	
-}
-
-function perm.addGroup(group_id, group_name) {
-	list.add($permgroup_ids, group_name);
-	map.add($grouplists, group_id, list.new());
-}
-
-function perm.getGroupList(group_id) {
-	return map.get($grouplists, group_id);
+function perm.addGroup(group_id, group_name, rank, awardable) {
+	$permgroups[group_id, 0] = group_name;
+	$permgroups[group_id, 1] = rank;
+	$permgroups[group_id, 2] = list.new();
+	$permgroups[group_id, 3] = awardable;
 }
 
 function perm.addToGroup(group_id, perm) {
@@ -401,11 +410,27 @@ function perm.addToGroup(group_id, perm) {
 	list.add(list, perm);
 }
 
-function perm.addGroupToPlayer(group_id, player) {
-	list = perm.getGroupList(group_id);
-	iter = list.iterator(list);
+function perm.initOnlinePlayers() {
+	list = players.toList();
+	iter = iterator(list);
 	while(hasNext(iter)) {
-		perm = next(iter);
-		perm.add(perm, player);
+		perm.initPlayer(next(iter));
+	}
+}
+
+function perm.loadDatabank() {
+	perms = map.new();
+	
+	stmt = databank.prepare("SELECT player_id,perm_id FROM new_playerperms");
+	result = databank.execute(stmt);
+	while(databank.next(result)) {
+		player_id = databank.getInt(result, 1);
+		perm_id = databank.getInt(result, 2);
+		list = map.getOrDefault(perms, player_id, list.new());
+		list.add(list, perm_id);
+		map.add(perms, player_id, list);
 	}
+	databank.close(result);
+	databank.close(stmt);
+	setScriptVar("player_perms", perms);
 }

+ 7 - 9
system/scheduler.txt

@@ -1,7 +1,6 @@
-list = list.new();
-setScriptVar("scheduler_list", list);
+list = scheduler.getList();
 
-msg("dev", "§bScheduler §rloaded.");
+msg.string("dev", "§bScheduler §rloaded.");
 @loop
 iter = list.iterator(list);
 while(hasNext(iter)) {
@@ -29,12 +28,12 @@ while(hasNext(iter)) {
 			message = a[3];
 			msg(player, message);
 		}
-		//SetBlock
+		//SetBlockMaterial
 		if(action == 3) {
-			location = a[2];
-			item_string = a[3];
+			block = a[2];
+			material = a[3];
 			block_update = a[4];
-			block.set(location, item_string, block_update);
+			block.setMaterial(block, material, block_update);
 		}
 		//QuestFinish
 		if(action == 4) {
@@ -69,8 +68,7 @@ while(hasNext(iter)) {
 		if(action == 9) {
 			player = a[2];
 			item = a[3];
-			boolean = a[4];
-			player.giveSingleItem(player, item, boolean);
+			player.giveSingleItem(player, item);
 		}
 		remove(iter);
 	}

+ 0 - 124
system/worldedit.txt

@@ -1,124 +0,0 @@
-print("test");
-
-wand = material.get("WOODEN_AXE");
-main_hand = read.slot("HAND");
-
-event.load("custom_command");
-event.load("block_click");
-command.add("/set");
-
-pos1 = map.new();
-pos2 = map.new();
-
-loc1 = null;
-loc2 = null;
-
-
-help = command.newhelp("/set", "/set");
-command.addHelpChild(help, command.newHelpString("block_data", true));
-command.addHelp(help);
-command.sendhelp();
-
-function addPos1(loc) {
-    map.add($pos1, player.getUUID($player), loc);
-}
-
-function addPos2(loc) {
-    map.add($pos2, player.getUUID($player), loc);
-}
-
-function send(msg) {
-    msg($player, text.new(string.concat("[§6WorldEdit§r] ", msg)));
-}
-
-function checkMarkings() {
-    uuid = player.getUUID($player);
-    $loc1 = map.get($pos1, uuid);
-    $loc2 = map.get($pos2, uuid);
-    if($loc1 == null || $loc2 == null) {
-        send("Missing position");
-        return true;
-    }
-    if(loc.distance($loc1, $loc2) > 100) {
-        send("Too much distance");
-        return true;
-    }
-    loc.sort($loc1, $loc2);
-    return false;
-}
-
-function getData(raw_data_string) {
-    data_string = raw_data_string;
-    if(!string.startsWith(data_string, "minecraft:", 0)) {
-        data_string = string.concat("minecraft:", data_string);
-    }
-    data = read.blockData(data_string);
-    if(data == null) {
-        send(string.concat("'", raw_data_string, "' is not valid blockdata."));
-    }
-    return data;
-}
-
-// event loop
-@loop
-wait();
-igoto(event);
-goto("loop");
-
-@block_click
-if(block != null && hand == main_hand && perm.has("worldedit", player)) {
-    item = living.getEquip(player, main_hand);
-    if(item.getType(item) == wand) {
-        if(action == "LEFT_CLICK_BLOCK") {
-            loc = block.getLocation(block);
-            addPos1(loc);
-            send(string.concat("§6Pos 1: §r", 
-                string.number(loc.getBlockX(loc)), "§6 | §r", 
-                string.number(loc.getBlockY(loc)), "§6 | §r", 
-                string.number(loc.getBlockZ(loc))
-                ));
-            cancel = true;
-        } elseif(action == "RIGHT_CLICK_BLOCK") {
-            loc = block.getLocation(block);
-            addPos2(loc);
-            send(string.concat("§6Pos 2: §r", 
-                string.number(loc.getBlockX(loc)), "§6 | §r", 
-                string.number(loc.getBlockY(loc)), "§6 | §r", 
-                string.number(loc.getBlockZ(loc))
-                ));
-            cancel = true;
-        }
-    }
-}
-goto("loop");
-
-@custom_command
-if(!isPlayer(sender)) {
-    msg(sender, "§cWorld Edit commands must be used by a player.");
-    goto("loop");
-}
-player = sender;
-if(string.startsWith(command, "/", 0)) {
-    igoto(string.substring(command, 1, string.length(command)));
-}
-goto("loop");
-
-@set
-if(checkMarkings()) {
-    goto("loop");
-}
-if(list.getSize(args) <= 0) {
-    send("//set <type>");
-    goto("loop");
-}
-block_data = getData(list.get(args, 0));
-if(block_data == null) {
-    goto("loop");
-}
-iter = loc.iterator(loc1, loc2);
-while(hasNext(iter)) {
-    loc = next(iter);
-    block.setData(block.get(loc), block_data);
-}
-goto("loop");
-

+ 9 - 35
test3.txt

@@ -1,37 +1,11 @@
-error(true);
 p = read.player("kajetanjohannes");
 loc = entity.getLocation(p);
-
-/*event.load("human_damage");
-@loop
-wait();
-cancel = false;
-goto("loop");*/
-
-entity = player.getTargetEntity(p, 50);
-if(entity != null) {
-    human.setName(entity, "Wusler24");
-    //print("yes");
-    /*human.setSkin(entity, "ewogICJ0aW1lc3RhbXAiIDogMTYzOTY3MTc5ODEyNywKICAicHJvZmlsZUlkIiA6ICI3MzgyZGRmYmU0ODU0NTVjODI1ZjkwMGY4OGZkMzJmOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJCdUlJZXQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWZkOWFjZTM2MmMxYzFmOTg0ZTAxYmU2ZTZjNTRhYWY0MTI1ZDBmNTc5ZDQyNTgyOTdiZWUxMjcyMjI0NDNmNCIKICAgIH0KICB9Cn0", "qFMdFP0a8dLDQvlsUpGAo5fNgjmccphiE7HNdLPe12UKtZoA8xb7noxXjPyodseX/LddrRzz63KiEGphnjjl1p4TvbuIdngA4kCFKHhCG7gmWWO/mGPpv5q9nW0WtUgHwe/MeEyqyrLri4HPxsL6UMFuzXoAMdx61p1marLmsBcPb4bNtmFKMn6lt+cG++p9gYO74vL22RhNubH/PDjCvFqVZi8TZOj/pCq6/BG3n/M4PRnHQ36nOMN2cT2JM5d2As8wnepCaDV+KRjTtVg7Sws+Sl80iS/TWMzRsSUkZB5PQVCIdpfyD1JOuhV5NVo0+iqUGdEKmwY/VltlAJ/Mz/BNobGzxV640t9cutpXq6PVhMRxSXtaOT0mSzjJla71nc34KOQverNnOCsgj3AZ6HA+jJ2xK2fC1etGIF0Y/M7QZHM6jM3fE0htF9odQowue0S/9/ram7LhXrcWA7mzSDVpLN8jEjIGC25uEEG6StRhYQih0N/wyrYKR66OsMQTpXcnoacl9tiHwFz7XiknXHKY2SliCXVHKQSHy9aIBLnxZPeDYPj5N1xvK4f3788LAiXyFDbrQ1243WCgVuJwIrh1Tg1qSUDuJx1GEevWfiazySqOFhhw1MwmjJXFOp7dz+VKKt+rjEBjq+cTkvskDZqpEINxqcNP1hnImiszMY0=");
-    */
-    human.setSkin(entity, "ewogICJ0aW1lc3RhbXAiIDogMTYzODkyMDIxNTE1MSwKICAicHJvZmlsZUlkIiA6ICI0NWY3YTJlNjE3ODE0YjJjODAwODM5MmRmN2IzNWY0ZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJfSnVzdERvSXQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTNkMDQ1Y2QzMDIxODRkMjlhMmEzNmZlM2YyYmVhYmI5MGU3MmIyYjA3NTJmNzgzMmU5MDkzMjRiYWQwMjY5ZiIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9", "NCRVEz6H/aJtN4Ni7Ec9GqXwEIOhaFpzWM8hfbLhrD3+X9TcADuHKt+R7rgVNfxXZB2X14IekBckJnMjAo0Ofhn4RGI2DUMnjiwQsd7raFjgmenuuoJRIvU5ylnoNxQqa2jy7ac1HMzeW+aYIlVo+viAtojmYs5tXByDfyGY2HOd6igjRL7iokoGfb9gOxlmQriDkNXhT0frMatwINT6bF3cBpyji1VoWVUOzPQFDeQWsW07FQCjIGd5sBUFUm7a9m9mjeZA9QFVS/y6v4Q3fAaRXBp3j1QT59fkkSnO3rAiWpqoz9VDrYgYlPRarMF6YzsbfURGZil4S6e8Z761FJnTgUXuBCO1E0JsMb53HPamSYdI6MlCQ1b+dGv4Ewm/MSWKMw5IopmM8a4FTwuojiZPdompBQJxObOljbYgKpTWnZ74WTHwpFp0/Ku2sB1M0joyllImhtukiwxYcETUHefyBx97KQXlEVbnzGYFmdNFSSoTpT+Mc27yCMjhgW5zT6Z5yTLiXJ+xaHw2lplwsEyC9KJt1cUeg7EwrAMEv0hjsQWOateLvJa3K2GJ58BKlQHKbojMhutM0sF+gM1KeSIV5+FWlnsdT10nxqUGzgAs8GAtIN9HtCiZQ8ffuc7tcdP7wqucjZWDA8egdyYRPAVduEk8Ncmh8yw05kN/HoA=");
-    
-    /*human.setSkin(entity, "ewogICJ0aW1lc3RhbXAiIDogMTYzODkyMDE1NzA3NSwKICAicHJvZmlsZUlkIiA6ICI2OTBkMDM2OGM2NTE0OGM5ODZjMzEwN2FjMmRjNjFlYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ5emZyXzciLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmNjNTA0OWU1MTRiNTg5Y2I5NTc5YWJjZjU5ZDQxNDg0YWFlMTJmZjE3ZDc4ZmJkMGM3OWVjZmVmNjFlNzMwZCIKICAgIH0KICB9Cn0=", "mMo0/F0jlu7FLu3VCnGhlKaN1SAlX9LNhPOZak0e/2vtSPz/W4fV62qpEJkFokeuRVaL82f9YBVVJAsQAV5WhTgFEDsAmZuCqjsVIikmdzbkBwsVA6gJb3rPXUFnr0ZUiqc24yonHu4WLUcFv2HZDV/JVD8mTg9HLjnPZYTcWfGSaavARvIW+g4jgLGZcdWDV9KCFCp5eq9Sqch8bAHXI9T6AAIqKv14knzgKHcGiuq++ukrROKEsp8/p0FUFsey6IXI6/oTkhXTHk8AvwGMXu2NdAhbVqKrw6IQP8k827iyslqemdmnZstzabOs56VdtgZF3JMncPcnhBb7Vucr5IesocSTjDUn5t90jOyQXd3Nn7JeZRTovOnRDWyN+4IV/4QzId2cD9xS0JFVcksheGYfUnl+IiSobHBMAp9nfP/ZTB6arNN/1+HeDsrqAmYzwy0qzFooBKTXD/XtNbJPzVjwiQwWhea3Ggu9cENdElzS8HyMXli1RABrLoOlkFXBwvaoieTk4hduamop3RAfT1UHMflnpw1VwtjFGYaQNQrJ8t5JqREpz1PMz/k6aC6mWGQWgEsHSVRsa/m2ZRsnXSLvED2egAkWNnoPIxxnwcvduWC+bamaJW7GnJqayMd+NHr4xmiLiSvFrDmBTezOAno16wfPJ11k8Xva3C9Epnw=");*/
-} else {
-    for(i = 0; i < 1; i++) {
-        h = human.spawn(loc, "Default");
-    }
-}
-
-ents = world.getEntities(loc.getWorld(loc));
-iter = iterator(ents);
-
-counter = 0;
-while(hasNext(iter)) {
-    ent = next(iter);
-    text = class(ent);
-    if(string.contains(text, "Human")) {
-        counter++;
-    }
-}
-print(counter);
+h = human.spawn(loc, "Mareeeen");
+human.setAI(h, 2);
+human.canMove(h, true);
+human.setSkinUUID(h, read.uuid("88822148-d046-4345-a64a-da6bbfb684ca"));
+living.setEquip(h, read.slot("HAND"), item.new(material.get("STONE_SWORD")));
+living.setEquip(h, read.slot("HEAD"), item.new(material.get("IRON_HELMET")));
+living.setEquip(h, read.slot("CHEST"), item.new(material.get("IRON_CHESTPLATE")));
+living.setEquip(h, read.slot("LEGS"), item.new(material.get("IRON_LEGGINGS")));
+living.setEquip(h, read.slot("FEET"), item.new(material.get("IRON_BOOTS")));

+ 4 - 32
test4.txt

@@ -1,35 +1,7 @@
 p = read.player("kajetanjohannes");
-
-e = player.getTargetEntity(p, 6);
-
-if(e == null) {
-    sb.clear(p);
-    text = "";
-    for(i = 1; i < 13; i++) {
-        text = string.concat(text, string.fromCode(63488 + i));
-    }
-    sb.add("online", 1, text);
-    
-    fh = string.fromCode(63488 + 10);
-    hh = string.fromCode(63488 + 11);
-    eh = string.fromCode(63488 + 12);
-    m1 = string.fromCode(63488 + 13);
-    sb.add("online", 2, string.concat(fh, m1, fh, m1, fh, m1, hh, m1, eh));
-    
-    fb = string.fromCode(63488 + 22);
-    hb = string.fromCode(63488 + 23);
-    eb = string.fromCode(63488 + 24);
-    sb.add("online", 3, string.concat("§0", string.fromCode(63488 + 13), "X", fb, m1, hb, m1, eb, "§1", "X", fb, m1, hb, m1, eb));
-    sb.add("online", 4, string.concat("§2", string.fromCode(63488 + 14), "X", fb, m1, hb, m1, eb, "§3", "X", fb, m1, hb, m1, eb));
-    sb.add("online", 5, string.concat("§4", string.fromCode(63488 + 15), "X", fb, m1, hb, m1, eb, "§5", "X", fb, m1, hb, m1, eb));
-    sb.add("online", 6, string.concat("§6", string.fromCode(63488 + 16), "X", fb, m1, hb, m1, eb, "§7", "X", fb, m1, hb, m1, eb));
-    sb.add("online", 7, string.concat("§8", string.fromCode(63488 + 17), "X", fb, m1, hb, m1, eb, "§9", "X", fb, m1, hb, m1, eb));
-    sb.add("online", 8, string.concat("§a", string.fromCode(63488 + 18), "X", fb, m1, hb, m1, eb, "§b", "X", fb, m1, hb, m1, eb));
-    sb.add("online", 9, string.concat("§c", string.fromCode(63488 + 19), "X", fb, m1, hb, m1, eb, "§d", "X", fb, m1, hb, m1, eb));
-    sb.add("online", 10, string.concat("§e", string.fromCode(63488 + 20), "X", fb, m1, hb, m1, eb, "§f", "X", fb, m1, hb, m1, eb));
-    
+block = player.getTargetBlock(p, 5);
+if(block == null) {
     term();
 }
-
-w = string.fromCode(63497);
-entity.setName(e, text.new(string.concat("Wusi", w, "Gusi2")));
+loc = block.getLocation(block);
+plot.addBlock(loc);

+ 35 - 0
test5.txt

@@ -0,0 +1,35 @@
+term();
+function getNewId(old_id) {
+	stmt = databank.prepare("SELECT id FROM forgeplayers WHERE old_id = ?");
+	databank.setInt(stmt, 1, old_id);
+	result = databank.execute(stmt);
+	if(databank.next(result)) {
+		new_id = databank.getInt(result, 1);
+	}
+	databank.close(result);
+	databank.close(stmt);
+	return new_id;
+}
+
+function updatePlaytime(old_id) {
+	new_id = getNewId(old_id);
+	if(new_id == null) {
+		return;
+	}
+	stmt1 = databank.prepare("UPDATE playtime SET player_id = ? WHERE player_id = ?");
+	databank.setInt(stmt1, 1, new_id);
+	databank.setInt(stmt1, 2, old_id);
+	databank.workerExecute(stmt1);
+}
+
+stmt = databank.prepare("SELECT player_id FROM playtime");
+result = databank.execute(stmt);
+while(databank.next(result)) {
+	id1 = databank.getInt(result, 1);
+	updatePlaytime(id1);
+}
+databank.close(result);
+databank.close(stmt);
+
+wait();
+msg("dev", text.new("Done"));

+ 0 - 0
test6.txt


+ 1 - 1
utils/u_error.txt

@@ -4,7 +4,7 @@ error_counter++;
 if(error_counter > 1) {
 	snuvi.debug("Error Handler activated");
 	snuvi.debug("Restarting script...");
-	if(error_counter >= 3) {
+	if(error_counter >= 100) {
 		snuvi.debug("Script terminated. Endless loop.");
 		term();
 	}

+ 269 - 372
utils/u_general.txt

@@ -1,3 +1,7 @@
+function isString(anything) {
+	return string.class(anything) == "String";
+}
+
 function getServerConfig() {
 	return getScriptVar("server_config");
 }
@@ -26,7 +30,7 @@ function isOnline(player_name) {
 
 function list.copy(list) {
 	list_new = list.new();
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		list.add(list_new, next(iter));
 	}
@@ -132,8 +136,8 @@ function correctTimeFormat(textnumber) {
 	return textnumber;
 }
 
-function player.giveSingleItem(player, item, boolean) {
-	amount = player.getItemAmount(player, boolean, item);
+function player.giveSingleItem(player, item) {
+	amount = player.getItemAmount(player, item);
 	if(amount == 0) {
 		player.safeGiveItem(player, item);
 	}
@@ -328,8 +332,8 @@ function ranking.getSecPoints(rankingtable, player_or_id) {
 	return sec_points;
 }
 
-function isAdminShop(sign_loc) {
-	return block.getSign(sign_loc, 0) == "[Admin Shop]";
+function isAdminShop(sign_block) {
+	return sign.getString(sign_block, 0) == "[Admin Shop]";
 }
 
 //--------------------------------------------------
@@ -392,10 +396,6 @@ function world.getCreativeSpawn() {
 	return read.location(config.getString(getServerConfig(), "creative", "world:0:0:0"));
 }
 
-function world.getStorySpawn() {
-	return read.location(config.getString(getServerConfig(), "storyspawn", "world:0:0:0"));
-}
-
 function world.getOverWorld() {
 	return world.get("world");
 }
@@ -416,10 +416,6 @@ function world.getCreative() {
 	return world.get("creative");
 }
 
-function world.getStory() {
-	return world.get("story");
-}
-
 function world.isCreativeName(world_name) {
 	return world_name == "creative";
 }
@@ -428,10 +424,6 @@ function world.isGamesName(world_name) {
 	return world_name == "games";
 }
 
-function world.isStoryName(world_name) {
-	return world_name == "story";
-}
-
 function world.isSurvName(world_name) {
 	if(world_name == "world") {
 		return true;
@@ -458,28 +450,28 @@ function world.addTimedStatus(world, index, time, message) {
 	return;
 	world_name = world.getName(world);
 	if(world.isSurvName(world_name)) {
-		worldlist = players.toWorldList(world.getOverWorld());
+		worldlist = world.getPlayers(world.getOverWorld());
 		for(i = 0; i < list.getSize(worldlist); i++) {
 			status.addTimed(list.getIndex(worldlist, i), index, time, message);
 		}
-		worldlist = players.toWorldList(world.getTheEnd());
+		worldlist = world.getPlayers(world.getTheEnd());
 		for(i = 0; i < list.getSize(worldlist); i++) {
 			status.addTimed(list.getIndex(worldlist, i), index, time, message);
 		}
-		worldlist = players.toWorldList(world.getTheNether());
+		worldlist = world.getPlayers(world.getTheNether());
 		for(i = 0; i < list.getSize(worldlist); i++) {
 			status.addTimed(list.getIndex(worldlist, i), index, time, message);
 		}
 		return;
 	}
-	worldlist = players.toWorldList(world);
+	worldlist = world.getPlayers(world);
 	for(i = 0; i < list.getSize(worldlist); i++) {
 		status.addTimed(list.getIndex(worldlist, i), index, time, message);
 	}
 }
 
 function world.giveItem(world, item) {
-	world_list = players.toWorldList(world);
+	world_list = woorld.getPlayers(world);
 	iter = iterator(world_list);
 	while(hasNext(iter)) {
 		player.safeGiveItem(next(iter), item);
@@ -658,10 +650,18 @@ function string.getClickText(show_string, execute_string) {
 	return text.click(text.new(show_string), execute_string);
 }
 
+function text.getClickText(show_text, execute_string) {
+	return text.click(show_text, execute_string);
+}
+
 function string.getHoverText(show_string, execute_string) {
 	return text.hover(text.new(show_string), text.new(execute_string));
 }
 
+function text.getHoverText(show_text, execute_string) {
+	return text.hover(show_text, text.new(execute_string));
+}
+
 function string.getClipBoardText(show_string, copy_string) {
 	return text.clipBoard(text.new(show_string), text.new(copy_string));
 }
@@ -683,16 +683,16 @@ function string.concatList(list, connector, from_index, to_index) {
 }
 
 function string.onlyLetters(string) {
-	a_code = string.charcode("a");
-	z_code = string.charcode("z");
-	oe_code = string.charcode("ö");
-	ae_code = string.charcode("ä");
-	ue_code = string.charcode("ü");
-	cap_a_code = string.charcode("A");
-	cap_z_code = string.charcode("Z");
-	cap_oe_code = string.charcode("Ö");
-	cap_ae_code = string.charcode("Ä");
-	cap_ue_code = string.charcode("Ü");
+	a_code = string.charcode("a", 0);
+	z_code = string.charcode("z", 0);
+	oe_code = string.charcode("ö", 0);
+	ae_code = string.charcode("ä", 0);
+	ue_code = string.charcode("ü", 0);
+	cap_a_code = string.charcode("A", 0);
+	cap_z_code = string.charcode("Z", 0);
+	cap_oe_code = string.charcode("Ö", 0);
+	cap_ae_code = string.charcode("Ä", 0);
+	cap_ue_code = string.charcode("Ü", 0);
 	
 	for(i = 0; i < string.length(string); i++) {
 		char_code = string.charcode(string, i);
@@ -1182,7 +1182,7 @@ function player.teleport(player, location, setBackPos) {
 		if(player.isInParty(player) && player.isPartyLeader(player)) {
 			party_id = player.getPartyId(player);
 			party_list = party.getList(party_id);
-			iter = list.iterator(party_list);
+			iter = iterator(party_list);
 			while(hasNext(iter)) {
 				p = player.get(next(iter));
 				if(player_uuid == player.getUuid(p)) {
@@ -1267,21 +1267,6 @@ function playerdata.getGames(player_or_id) {
 	return config;
 }
 
-function playerdata.getStory(player_or_id) {
-	player_id = player.getValidId(player_or_id);
-	if(player_id == null) {
-		snuvi.debug(string.concat("invalid player_id ", player_id, " on playerdata.getStory"));
-		return;
-	}
-	map = getScriptVar("story_data");
-	config = map.get(map, player_id);
-	if(config == null) {
-		playerdata.load(player_id, map, "story_data");
-		config = map.get(map, player_id);
-	}
-	return config;
-}
-
 function playerdata.load(player_or_id, map, name) {
 	player_id = player.getValidId(player_or_id);
 	if(player_id == null) {
@@ -1343,7 +1328,7 @@ function msg.chat(player, message) {
 		live_tag = "";
 	}
 	online_list = players.toList();
-	iter = list.iterator(online_list);
+	iter = iterator(online_list);
 	while(hasNext(iter)) {
 		p = next(iter);
 		if(player.hasMinigame(p) && player.isMuted(p)) {
@@ -1374,17 +1359,23 @@ function msg.online(prefix, message) {
 
 function msg.radius(prefix, message, location, radius) {
 	list = players.near(location, radius);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		msg.prefix(next(iter), prefix, message);
 	}
 }
 
 function msg.world(world, message) {
-	world_list = players.toWorldList(world);
+	if(world == null) {
+		return;
+	}
+	if(isString(message)) {
+		message = text.new(message);
+	}
+	world_list = world.getPlayers(world);
 	iter = iterator(world_list);
 	while(hasNext(iter)) {
-		msg.string(next(iter), message);
+		msg(next(iter), message);
 	}
 }
 
@@ -1394,10 +1385,6 @@ function msg.survival(message) {
 	msg.world(world.getTheNether(), message);
 }
 
-function msg.story(message) {
-	msg.world(world.getStory(), message);
-}
-
 function msg.creative(message) {
 	msg.world(world.getCreative(), message);
 }
@@ -1418,6 +1405,17 @@ function material.getAir() {
 //Item-Utils
 //--------------------------------------------------
 
+function item.custom.create(type, amount, name, lore_list) {
+	item = item.custom.new(item.custom.get(type));
+	if(name != null) {
+		item.setName(item, text.new(name));
+	}
+	if(lore_list != null) {
+		item.setLore(item, lore_list);
+	}
+	return item;
+}
+
 function item.create(type, amount, name, lore_list) {
 	item = item.new(material.get(type), amount);
 	if(name != null) {
@@ -1589,17 +1587,11 @@ function player.setLive(player, boolean) {
 }
 
 function player.getFullName(player) {
-	player_name = player.getName(player);
-	nickname = string.removeFormat(player.getNickname(player));
-	if(nickname == player_name) {
-		personally_messages = true;
+	nickname = player.getNickname(player);
+	if(player.isNicked(player)) {
+		full_name = string.concat("[§3User§r] ", nickname);
 	} else {
-		personally_messages = false;
-	}
-	if(personally_messages) {
 		full_name = string.concat("[", getRank(player), "§r] ", nickname);
-	} else {
-		full_name = string.concat("[§3User§r] ", nickname);
 	}
 	return full_name;
 }
@@ -1669,15 +1661,6 @@ function player.removeItemTag(player, tag, amount) {
 	return air;
 }
 
-function player.showDebug(player, boolean) {
-	player_uuid = player.getUuid(player);
-	if(boolean) {
-		perm.registerPlayer(player_uuid, 16);
-	} else {
-		perm.unregisterPlayer(player_uuid, 16);
-	}
-}
-
 function player.setSpeed(player, speed) {
 	speed = 4/5/9 * speed + 1/9;
 	player.setWalkSpeed(player, speed);
@@ -2144,6 +2127,10 @@ function player.checkHandsForTag(player, tag) {
 //Block-Utils
 //--------------------------------------------------
 
+function sign.getString(block, row) {
+	return string.text(block.getSign(block, row));
+}
+
 function block.isType(block, type) {
 	return block.getType(block) == material.get(type);
 }
@@ -2277,14 +2264,43 @@ function money.popUp(player, money, boosted) {
 	} else {
 		post = "";
 	}
-	player.action(player, string.concat(pre, "§6", string.number(money), " §rsnuvi", post));
+	//player.action(player, string.concat(pre, "§6", string.number(money), " §rsnuvi", post));
+	player.action(player, text.new(string.concat(pre, " ", money.getString(money), " ", post)));
+}
+
+function money.display(player, money)  {
+	a = money.split(money);
+	gold = string.number(a[0]);
+	silver = string.number(a[1]);
+	copper = string.number(a[2]);
+	sb.add(player, 1, string.concat(icon.getGoldCoin(), gold, " ", icon.getSilverCoin(), silver, " ", icon.getCopperCoin(), copper));
 }
 
 function displayMoney(player, money) {
+	money.display(player, money);
+}
+
+function money.getString(money) {
 	a = money.split(money);
-	//display.add(player, 0, string.concat("#23-1- ", string.number(a[0])));
-	//display.add(player, 1, string.concat("#24-1- ", string.number(a[1])));
-	//display.add(player, 2, string.concat("#25-1- ", string.number(a[2])));
+	gold = a[0];
+	silver = a[1];
+	copper = a[2];
+	if(gold == 0) {
+		gold_string = "";
+	} else {
+		gold_string = string.concat(icon.getGoldCoin(), string.number(gold));;
+	}
+	if(silver == 0) {
+		silver_string = "";
+	} else {
+		silver_string = string.concat(icon.getSilverCoin(), string.number(silver));;
+	}
+	if(copper == 0) {
+		copper_string = "";
+	} else {
+		copper_string = string.concat(icon.getCopperCoin(), string.number(copper));;
+	}
+	return string.concat(gold_string, silver_string, copper_string);
 }
 
 function money.split(money) {
@@ -2516,7 +2532,7 @@ function plot.transferRanks(old_plot_id, new_plot_id) {
 
 function plot.removeAllPlayers(plot) {
 	list = plot.getOwners(plot);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		plot.removeRank(plot, player.getId(next(iter)));
 	}
@@ -2935,7 +2951,7 @@ function loc.isSameWorld(loc1, loc2) {
 
 function loc.getSubPlot(location) {
 	list = plot.get(location);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		plot = next(iter);
 		if(plot.isSub(plot)) {
@@ -2947,7 +2963,7 @@ function loc.getSubPlot(location) {
 
 function loc.isCity(location) {
 	list = plot.get(location);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		plot = next(iter);
 		if(plot.isCity(plot)) {
@@ -2963,7 +2979,7 @@ function loc.hasPlotId(location, plot_id) {
 
 function loc.hasPlotName(location, plot_name) {
 	list = plot.get(location);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		plot = next(iter);
 		if(plot.getName(plot) == plot_name) {
@@ -2993,10 +3009,6 @@ function loc.isInCreativeWorld(location) {
 	return loc.getWorld(location) == world.getCreative();
 }
 
-function loc.isInStoryWorld(location) {
-	return loc.getWorld(location) == world.getStory();
-}
-
 function loc.round(location) {
 	world = loc.getWorld(location);
 	x = math.round(loc.getX(location));
@@ -3081,7 +3093,7 @@ function setRank(player_or_id, rank) {
 
 function offerRank(player, tech_name) {
 	rank = rank.getFromTechName(tech_name);
-	msg.string(player, "§r[§6Commands§r] New rank available: ", string.getHoverText(string.getClickText(string.concat("[§", rank, "§r]"), string.concat("/setrank ", player.getName(player), " &", rank)), "Click to set"));
+	msg(player, text.merge(text.new(string.getPrefix("§6Commands")), text.new(" "), text.new("New rank available: "), text.getHoverText(string.getClickText(string.concat("[§", rank, "§r]"), string.concat("/setrank ", player.getName(player), " &", rank)), "Click to set")));
 }
 
 function rank.offerClan(clan_id, tech_name) {
@@ -3234,51 +3246,62 @@ function rank.showAll(player) {
 //Perm-Utils
 //--------------------------------------------------
 
-function givePerm(player_id, perm_id) {
-	stmt = databank.prepare("INSERT INTO playerperms (player_id, perm_id) VALUES (?,?);");
+function perm.addGroupToPlayer(player_id, perm_id) {
+	stmt = databank.prepare("INSERT INTO new_playerperms (player_id, perm_id) VALUES (?,?);");
 	databank.setInt(stmt, 1, player_id);
 	databank.setInt(stmt, 2, perm_id);
 	databank.workerExecute(stmt);
-	perm.registerPlayer(player.getUuidFromID(player_id), perm_id);
+	
+	list = player.getPerms(player_id);
+	list.add(list, perm_id);
+
+	perm.initPlayer(player_id);
 }
 
-function removePerm(player_id, perm_id) {
-	stmt = databank.prepare("DELETE FROM playerperms WHERE player_id = ? AND perm_id = ?;");
+function perm.removeGroupFromPlayer(player_id, perm_id) {
+	stmt = databank.prepare("DELETE FROM new_playerperms WHERE player_id = ? AND perm_id = ?;");
 	databank.setInt(stmt, 1, player_id);
 	databank.setInt(stmt, 2, perm_id);
 	databank.workerExecute(stmt);
-	perm.unregisterPlayer(player.getUuidFromID(player_id), perm_id);
+	
+	list = player.getPerms(player_id);
+	list.remove(list, perm_id);
+	
+	perm.initPlayer(player_id);
 }
 
-function removeAllPermsTemporarly(player_id) {
-	perm.registerPlayer(player.getUuidFromID(player_id), 8);
-	permslist = getPermsFromPlayer(player_id);
-	for(i = 0; i < list.getSize(permslist); i++) {
-		perm_id = list.getIndex(permslist, i);
-		perm.unregisterPlayer(player.getUuidFromID(player_id), perm_id);
-	}
+function perm.simUser(player) {
+	perm.clear(player);
+	perm.loadGroupToPlayer(0, player);
+	perm.loadGroupToPlayer(14, player);
 }
 
-function reloadAllPerms(player_id) {
-	perm.unregisterPlayer(player.getUuidFromID(player_id), 8);
-	permslist = getPermsFromPlayer(player_id);
-	for(i = 0; i < list.getSize(permslist); i++) {
-		perm_id = list.getIndex(permslist, i);
-		perm.registerPlayer(player.getUuidFromID(player_id), perm_id);
-	}
+function player.removeAllPerms(player_id) {
+	stmt = databank.prepare("DELETE FROM new_playerperms WHERE player_id = ?;");
+	databank.setInt(stmt, 1, player_id);
+	databank.workerExecute(stmt);
+	perm.initPlayer(player_id);
 }
 
-function removeAllPerms(player_id) {
-	permslist = getPermsFromPlayer(player_id);
-	for(i = 0; i < list.getSize(permslist); i++) {
-		removePerm(player_id, list.getIndex(permslist, i));
-	}
+function perm.getAll() {
+	return getScriptVar("player_perms");
 }
 
+function player.getPerms(player_or_id) {
+	player_id = player.getValidId(player_or_id);
+	map = perm.getAll();
+	list = map.get(map, player_id);
+	if(list == null) {
+		list = list.new();
+		map.add(map, player_id, list);
+	}
+	return map.getOrDefault(perm.getAll(), player_id, list.new());
+}
 
-function getPermsFromPlayer(player_id) {
+function player.getPermsFromDatabank(player_or_id) {
+	player_id = player.getValidId(player_or_id);
 	permslist = list.new();
-	stmt = databank.prepare("SELECT perm_id FROM playerperms WHERE player_id = ?;");
+	stmt = databank.prepare("SELECT perm_id FROM new_playerperms WHERE player_id = ?;");
 	databank.setInt(stmt, 1, player_id);
 	result = databank.execute(stmt);
 	while(databank.next(result)) {
@@ -3289,18 +3312,6 @@ function getPermsFromPlayer(player_id) {
 	return permslist;
 }
 
-function registerAllPerms() {
-	stmt = databank.prepare("SELECT * FROM playerperms;");
-	result = databank.execute(stmt);
-	while(databank.next(result)) {
-		player_id = databank.getInt(result, 1);
-		perm_id = databank.getInt(result, 2);
-		perm.registerPlayer(player.getUuidFromID(player_id), perm_id);
-	}
-	databank.close(result);
-	databank.close(stmt);
-}
-
 function perm.setGroups(permgroups) {
 	setScriptVar("permgroups", permgroups);
 }
@@ -3312,8 +3323,8 @@ function perm.getGroups() {
 function perm.getNameFromId(permgroup_id) {
 	a = perm.getGroups();
 	for(i = 0; i < array.getSize(a); i++) {
-		if(a[i, 0] == permgroup_id) {
-			return a[i, 1];
+		if(i == permgroup_id) {
+			return a[i, 0];
 		}
 	}
 	return null;
@@ -3322,8 +3333,8 @@ function perm.getNameFromId(permgroup_id) {
 function perm.getRankFromId(permgroup_id) {
 	a = perm.getGroups();
 	for(i = 0; i < array.getSize(a); i++) {
-		if(a[i, 0] == permgroup_id) {
-			return a[i, 2];
+		if(i == permgroup_id) {
+			return a[i, 1];
 		}
 	}
 	return null;
@@ -3332,8 +3343,8 @@ function perm.getRankFromId(permgroup_id) {
 function perm.getIdFromGroupname(permgroup_name) {
 	a = perm.getGroups();
 	for(i = 0; i < array.getSize(a); i++) {
-		if(a[i, 1] == permgroup_name) {
-			return a[i, 0];
+		if(a[i, 0] == permgroup_name) {
+			return i;
 		}
 	}
 	return null;
@@ -3342,8 +3353,8 @@ function perm.getIdFromGroupname(permgroup_name) {
 function perm.getRankFromGroupname(permgroup_name) {
 	a = perm.getGroups();
 	for(i = 0; i < array.getSize(a); i++) {
-		if(a[i, 1] == permgroup_name) {
-			return a[i, 2];
+		if(a[i, 0] == permgroup_name) {
+			return a[i, 1];
 		}
 	}
 	return null;
@@ -3352,7 +3363,7 @@ function perm.getRankFromGroupname(permgroup_name) {
 function perm.isGroupName(permgroup_name) {
 	a = perm.getGroups();
 	for(i = 0; i < array.getSize(a); i++) {
-		if(a[i, 1] == permgroup_name) {
+		if(a[i, 0] == permgroup_name) {
 			return true;
 		}
 	}
@@ -3360,10 +3371,54 @@ function perm.isGroupName(permgroup_name) {
 }
 
 function player.hasPermGroup(player_id, perm_id) {
-	permslist = getPermsFromPlayer(player_id);
+	permslist = player.getPerms(player_id);
 	return list.contains(permslist, perm_id);
 }
 
+function perm.loadGroupToPlayer(group_id, player) {
+	list = perm.getGroupList(group_id);
+	iter = iterator(list);
+	while(hasNext(iter)) {
+		perm = next(iter);
+		perm.add(perm, player);
+	}
+}
+
+function perm.getGroupList(group_id) {
+	a = perm.getGroups();
+	for(i = 0; i < array.getSize(a); i++) {
+		if(i == group_id) {
+			return a[i, 2];
+		}
+	}
+	return null;
+}
+
+function perm.isAwardable(group_id) {
+	a = perm.getGroups();
+	for(i = 0; i < array.getSize(a); i++) {
+		if(i == group_id) {
+			return a[i, 3];
+		}
+	}
+	return null;
+}
+
+function perm.initPlayer(player_or_id) {
+	player = player.getValid(player_or_id);
+	if(player == null) {
+		return;
+	}
+	perm.clear(player);
+	perm.loadGroupToPlayer(0, player);
+	permslist = player.getPerms(player);
+	iter = iterator(permslist);
+	while(hasNext(iter)) {
+		perm.loadGroupToPlayer(next(iter), player);
+	}
+	perm.update(player);
+	command.sendHelp(player);
+}
 
 //--------------------------------------------------
 //Nickname-Utils
@@ -3381,6 +3436,10 @@ function player.removeNickName(player) {
 	map.remove(getScriptVar("nicknames"), player.getUuid(player));
 }
 
+function player.isNicked(player) {
+	return map.contains(getScriptVar("nicknames"), player.getUuid(player));
+}
+
 //--------------------------------------------------
 //Mail-Utils
 //--------------------------------------------------
@@ -3442,13 +3501,16 @@ function mail.checkForNew(player) {
 //--------------------------------------------------
 
 function friend.check(player_id, friend_id) {
-	stmt = databank.prepare("SELECT friend_id FROM new_friends WHERE player_id = ? AND friend_id = ?;");
+	stmt = databank.prepare("SELECT friend_id FROM friends WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?);");
 	databank.setInt(stmt, 1, player_id);
 	databank.setInt(stmt, 2, friend_id);
+	databank.setInt(stmt, 3, friend_id);
+	databank.setInt(stmt, 4, player_id);
 	result = databank.execute(stmt);
-	temp = false;
-	while(databank.next(result)) {
+	if(databank.next(result)) {
 		temp = true;
+	} else {
+		temp = false;
 	}
 	databank.close(result);
 	databank.close(stmt);
@@ -3456,41 +3518,36 @@ function friend.check(player_id, friend_id) {
 }
 
 function friend.add(player_id, friend_id) {
-	nowtime = time.getMillis();
-	
-	stmt1 = databank.prepare("INSERT INTO new_friends (player_id, friend_id, time) VALUES (?, ?, ?);");
-	databank.setInt(stmt1, 1, player_id);
-	databank.setInt(stmt1, 2, friend_id);
-	databank.setLong(stmt1, 3, nowtime);
-	databank.workerExecute(stmt1);
-	
-	stmt2 = databank.prepare("INSERT INTO new_friends (player_id, friend_id, time) VALUES (?, ?, ?);");
-	databank.setInt(stmt2, 1, friend_id);
-	databank.setInt(stmt2, 2, player_id);
-	databank.setLong(stmt2, 3, nowtime);
-	databank.workerExecute(stmt2);
+	stmt = databank.prepare("INSERT INTO friends (player_id, friend_id, time) VALUES (?, ?, ?);");
+	databank.setInt(stmt, 1, player_id);
+	databank.setInt(stmt, 2, friend_id);
+	databank.setLong(stmt, 3, time.getMillis());
+	databank.workerExecute(stmt);
 }
 
 function friend.delete(player_id, friend_id) {
-	stmt1 = databank.prepare("DELETE FROM new_friends WHERE player_id = ? AND friend_id = ?;");
-	databank.setInt(stmt1, 1, player_id);
-	databank.setInt(stmt1, 2, friend_id);
-	databank.workerExecute(stmt1);
-	
-	stmt2 = databank.prepare("DELETE FROM new_friends WHERE player_id = ? AND friend_id = ?;");
-	databank.setInt(stmt2, 1, friend_id);
-	databank.setInt(stmt2, 2, player_id);
-	databank.workerExecute(stmt2);
+	stmt = databank.prepare("DELETE FROM friends WHERE (player_id = ? AND friend_id = ?) OR (player_id = ? AND friend_id = ?);");
+	databank.setInt(stmt, 1, player_id);
+	databank.setInt(stmt, 2, friend_id);
+	databank.workerExecute(stmt);
 }
 
 function friend.getList(player_id) {
 	list = list.new();
-	stmt = databank.prepare("SELECT friend_id FROM new_friends WHERE player_id = ?;");
+	stmt = databank.prepare("SELECT friend_id FROM friends WHERE player_id = ?;");
 	databank.setInt(stmt, 1, player_id);
 	result = databank.execute(stmt);
 	while(databank.next(result)) {
-		friend_id = databank.getInt(result, 1);
-		list.add(list, player.getNameFromId(friend_id));
+		list.add(list, databank.getInt(result, 1));
+	}
+	databank.close(result);
+	databank.close(stmt);
+	
+	stmt = databank.prepare("SELECT player_id FROM friends WHERE friend_id = ?;");
+	databank.setInt(stmt, 1, player_id);
+	result = databank.execute(stmt);
+	while(databank.next(result)) {
+		list.add(list, databank.getInt(result, 1));
 	}
 	databank.close(result);
 	databank.close(stmt);
@@ -3505,9 +3562,11 @@ function clan.getIdList() {
 	file = file.new("scripts/configs/clan_data");
 	if(file.exists(file) && file.isDirectory(file)) {
 		list = file.getList(file);
+	} else {
+		list = list.new();
 	}
 	id_list = list.new();
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		element = next(iter);
 		file_name = file.getName(element);
@@ -3519,7 +3578,7 @@ function clan.getIdList() {
 
 function clan.loadData() {
 	list = clan.getIdList();
-	iter = list.iterator(list);
+	iter = iterator(list);
 	map = map.new();
 	while(hasNext(iter)) {
 		clan_id = next(iter);
@@ -3621,7 +3680,7 @@ function clan.getSpawn(clan_id) {
 
 function clan.getIdFromName(name) {
 	list = clan.getIdList();
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		clan_id = next(iter);
 		if(clan.getName(clan_id) == name) {
@@ -3633,7 +3692,7 @@ function clan.getIdFromName(name) {
 
 function clan.getIdFromTag(clan_tag) {
 	list = clan.getIdList();
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		clan_id = next(iter);
 		if(clan.getTag(clan_id) == clan_tag) {
@@ -3671,7 +3730,7 @@ function clan.create(name, tag) {
 
 function clan.getLeader(clan_id) {
 	list = clan.getMembersList(clan_id);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		player_uuid = next(iter);
 		player_id = player.getId(player_uuid);
@@ -3738,7 +3797,7 @@ function clan.removeMember(clan_id, player_or_id) {
 function clan.delete(clan_id) {
 	//Members
 	list = clan.getMembersList(clan_id);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		player_uuid = next(iter);
 		player_id = player.getId(player_uuid);
@@ -3763,7 +3822,7 @@ function clan.getMembersList(clan_id) {
 
 function clan.updateHeadNames(clan_id) {
 	list = clan.getMembersList(clan_id);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		p = player.get(next(iter));
 		if(p != null) {
@@ -3774,7 +3833,7 @@ function clan.updateHeadNames(clan_id) {
 
 function clan.msg.string(clan_id, message) {
 	list = clan.getMembersList(clan_id);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		p = player.get(next(iter));
 		if(p != null) {
@@ -3785,7 +3844,7 @@ function clan.msg.string(clan_id, message) {
 
 function clan.mail(clan_id, from_name, message) {
 	list = clan.getMembersList(clan_id);
-	iter = list.iterator(list);
+	iter = iterator(list);
 	while(hasNext(iter)) {
 		to_name = player.getName(next(iter));
 		mail.send(from_name, to_name, message);
@@ -3856,7 +3915,11 @@ function party.addPlayer(party_id, player) {
 //--------------------------------------------------
 
 function scheduler.add(data_array) {
-	list.add(getScriptVar("scheduler_list"), data_array);
+	list.add(scheduler.getList(), data_array);
+}
+
+function scheduler.getList() {
+	return getScriptVar("scheduler_list");
 }
 
 function scheduler.addFly(ticks, player, bool) {
@@ -3887,12 +3950,12 @@ function scheduler.msg.string(ticks, player, message) {
 	scheduler.add(a);
 }
 
-function scheduler.setBlock(ticks, location, item_string, block_update) {
+function scheduler.setBlockMaterial(ticks, block, material, block_update) {
 	a = array.new(5);
 	a[0] = 3;
 	a[1] = ticks;
-	a[2] = location;
-	a[3] = item_string;
+	a[2] = block;
+	a[3] = material;
 	a[4] = block_update;
 	scheduler.add(a);
 }
@@ -3941,229 +4004,63 @@ function scheduler.giveItem(ticks, player, item) {
 	scheduler.add(a);
 }
 
-function scheduler.giveSingleItem(ticks, player, item, boolean) {
-	a = array.new(5);
+function scheduler.giveSingleItem(ticks, player, item) {
+	a = array.new(4);
 	a[0] = 9;
 	a[1] = ticks;
 	a[2] = player;
 	a[3] = item;
-	a[4] = boolean;
 	scheduler.add(a);
 }
 
-
 //--------------------------------------------------
-//Hawkeye-Utils
+//Icon-Utils
 //--------------------------------------------------
 
-function hawkeye.getData(timeFrom, timeTo, location, radius, events, players, order) {
-	base_query = "SELECT * FROM hawkeye WHERE ";
-	and_query = " AND ";
-	//Events
-	where_query = hawkeye.getEventQuery(events);
-	if(where_query == -1) {
-		return "False input at e:";
-	}
-	//Players
-	player_query = hawkeye.getPlayerQuery(players);
-	if(player_query == -1) {
-		return "False input at p:";
-	}
-	if(string.length(where_query) == 0) {
-		where_query = player_query;
-	} elseif(string.length(player_query) != 0) {
-		where_query = string.concat(where_query, and_query, player_query);
-	}
-	//Location
-	location_query = hawkeye.getLocationQuery(location, radius);
-	if(string.length(where_query) == 0) {
-		where_query = location_query;
-	} elseif(string.length(location_query) != 0) {
-		where_query = string.concat(where_query, and_query, location_query);
-	}
-	//Time
-	time_query = hawkeye.getTimeQuery(timeFrom, timeTo);
-	if(string.length(where_query) == 0) {
-		where_query = time_query;
-	} elseif(string.length(time_query) != 0) {
-		where_query = string.concat(where_query, and_query, time_query);
-	}
-	//Safety check
-	if(string.length(where_query) == 0) {
-		return "No parameters found";
-	}
-	//Final Statement
-	stmt = databank.prepare(string.concat(base_query, where_query, " ORDER BY time ", order, ";"));
-	index = 1;
-	if(events != null) {
-		iter = list.iterator(events);
-		while(hasNext(iter)) {
-			databank.setString(stmt, index, next(iter));
-			index++;
-		}
-	}
-	if(players != null) {
-		iter = list.iterator(players);
-		while(hasNext(iter)) {
-			databank.setInt(stmt, index, player.getId(player.getUuid(next(iter))));
-			index++;
-		}
-	}
-	if(location != null && radius != null) {
-		databank.setInt(stmt, index++, loc.getX(location));
-		databank.setInt(stmt, index++, loc.getY(location));
-		databank.setInt(stmt, index++, loc.getZ(location));
-		databank.setInt(stmt, index++, radius);
-	}
-	if(timeFrom != null && timeTo != null) {
-		databank.setLong(stmt, index++, timeFrom);
-		databank.setLong(stmt, index++, timeTo);
-	}
-	l = list.new();
-	result = databank.execute(stmt);
-	while(databank.next(result)) {
-		a = array.new(6);
-		id = databank.getInt(result, 1);
-		a[0] = id; //id
-		a[1] = databank.getInt(result, 2); //player_id
-		a[2] = databank.getString(result, 3); //event
-		a[3] = loc.new(world.get(databank.getString(result, 4)), databank.getInt(result, 5), databank.getInt(result, 6), databank.getInt(result, 7)); //location
-		a[4] = databank.getLong(result, 8); //time
-		a[5] = databank.getString(result, 9); //text
-		list.add(l, a);
-	}
-	databank.close(result);
-	databank.close(stmt);
-	return l;
+function icon.getGoldCoin() {
+	return string.fromCode(63489);
 }
 
-function hawkeye.getEventQuery(events) {
-	if(events == null) {
-		return "";
-	}
-	query = "event IN(";
-	c = 0;
-	iter = list.iterator(events);
-	while(hasNext(iter)) {
-		event = next(iter);
-		if(event != "block_break" && event != "block_place") {
-			return -1;
-		}
-		if(c == 0) {
-			query = string.concat(query, "?");
-		} else {
-			query = string.concat(query, ",?");
-		}
-		c++;
-	}
-	return string.concat(query, ")");
+function icon.getSilverCoin() {
+	return string.fromCode(63490);
 }
 
-function hawkeye.getPlayerQuery(players) {
-	if(players == null) {
-		return "";
-	}
-	query = "player_id IN(";
-	c = 0;
-	iter = list.iterator(players);
-	while(hasNext(iter)) {
-		player_name = next(iter);
-		player_uuid = player.getUuid(player_name);
-		if(player_uuid == null) {
-			return -1;
-		}
-		if(c == 0) {
-			query = string.concat(query, "?");
-		} else {
-			query = string.concat(query, ",?");
-		}
-		c++;
-	}
-	return string.concat(query, ")");
+function icon.getCopperCoin() {
+	return string.fromCode(63491);
 }
 
-function hawkeye.getLocationQuery(player_loc, radius) {	
-	if(player_loc == null || radius == null) {
-		return "";
-	}
-	return "POWER(x - ?, 2) + POWER(y - ?, 2) + POWER(z - ?, 2) < POWER(?, 2)";
+function icon.getExp() {
+	return string.fromCode(63492);
 }
 
-function hawkeye.getTimeQuery(timeFrom, timeTo) {
-	if(timeFrom == null || timeTo == null) {
-		return "";
-	}
-	return "time > ? AND time < ?";
-}
-
-function hawkeye.print(player, list, side) {
-	amount = list.getSize(list);
-	a = list.getIndex(list, side - 1);
-	msg.prefix(player, "§cHawkeye", string.concat("§7----- Page (§c", string.number(side), "§7/§c", string.number(amount), "§7) -----"));
-	msg.string(player, string.concat("§7| ID:", string.number(a[0]), " ", getTimeString(a[4])));
-	msg.string(player, string.concat("§7| §c", hawkeye.getEventName(read.number(a[2])), " ", player.getNameFromId(a[1])));
-	msg.string(player, string.concat("§7| ", loc.getStringSpace(a[3])));
-	msg.string(player, string.concat("§7| ", a[5]));
-	if(side == 1) {
-		backward = "§7<<<<";
-		if(amount == 1) {
-			forward = "§7>>>>";
-		} else {
-			forward = string.getClickText("§c>>>>", string.concat("/hawkeye print ", side + 1));
-		}
-	} elseif(side >= amount) {
-		backward = string.getClickText("§c<<<<", string.concat("/hawkeye print ", side - 1));
-		forward = "§7>>>>";
-	} else {
-		backward = string.getClickText("§c<<<<", string.concat("/hawkeye print ", side - 1));
-		forward = string.getClickText("§c>>>>", string.concat("/hawkeye print ", side + 1));
-	}
-	msg.string(player, backward, " ", forward);
-	msg.string(player, "§7-----------------------------");
+function icon.getBookshelf() {
+	return string.fromCode(63493);
 }
 
-function hawkeye.setDataList(player, list) {
-	map.add(getScriptVar("ha_data_lists"), player.getUuid(player), list);
+function icon.getCraftingTable() {
+	return string.fromCode(63494);
 }
 
-function hawkeye.getDataList(player) {
-	return map.get(getScriptVar("ha_data_lists"), player.getUuid(player));
+function icon.getCompass() {
+	return string.fromCode(63495);
 }
 
-function hawkeye.setUndoList(player, list) {
-	map.add(getScriptVar("ha_undo_lists"), player.getUuid(player), list);
+function icon.getCake() {
+	return string.fromCode(63496);
 }
 
-function hawkeye.getUndoList(player) {
-	return map.get(getScriptVar("ha_undo_lists"), player.getUuid(player));
+function icon.getEnderpearl() {
+	return string.fromCode(63497);
 }
 
-function hawkeye.rollback(list) {
-	counter = 0;
-	for(i = 0; i < list.getSize(list); i++) {
-		a = list.getIndex(list, i);
-		event = a[2];
-		loc = a[3];
-		if(event == "1") {
-			block.set(loc, a[5], true);
-			counter++;
-		} elseif(event == "2") {
-			block.set(loc, "minecraft:air", true);
-			counter++;
-		}
-	}
-	return counter;
+function icon.getHeart() {
+	return string.fromCode(63498);
 }
 
-function hawkeye.undo(list) {
-	for(i = list.getSize(list) - 1; i >= 0; i--) {
-		a = list.getIndex(list, i);
-		event = a[2];
-		loc = a[3];
-		if(event == "1") {
-			block.set(loc, "minecraft:air", true);
-		} elseif(event == "2") {
-			block.set(loc, a[5], true);
-		}
-	}
+function icon.getHalfHeart() {
+	return string.fromCode(63499);
+}
+
+function icon.getEmptyHeart() {
+	return string.fromCode(63500);
 }

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác