Added admins with in-game icons and permissions; untested
This commit is contained in:
BIN
core/assets-raw/sprites/ui/icons/icon-admin-small.png
Normal file
BIN
core/assets-raw/sprites/ui/icons/icon-admin-small.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 163 B |
@@ -335,7 +335,7 @@ blocks/doubleturret
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/duriumwall
|
blocks/duriumwall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 117, 40
|
xy: 132, 78
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -349,14 +349,14 @@ blocks/duriumwall-large
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/duriumwall-large-icon
|
blocks/duriumwall-large-icon
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 117, 30
|
xy: 117, 40
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/enemyspawn
|
blocks/enemyspawn
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 117, 20
|
xy: 117, 30
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -370,42 +370,42 @@ blocks/flameturret
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/fluxpump
|
blocks/fluxpump
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 117, 10
|
xy: 117, 20
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/grass1
|
blocks/grass1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 865, 417
|
xy: 117, 10
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/grass2
|
blocks/grass2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 624, 233
|
xy: 865, 417
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/grass3
|
blocks/grass3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 624, 223
|
xy: 624, 233
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/grassblock1
|
blocks/grassblock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 624, 213
|
xy: 624, 223
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/grassblock2
|
blocks/grassblock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 634, 235
|
xy: 624, 213
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -419,21 +419,21 @@ blocks/grassedge
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/ice1
|
blocks/ice1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 634, 225
|
xy: 634, 235
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/ice2
|
blocks/ice2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 634, 215
|
xy: 634, 225
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/ice3
|
blocks/ice3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 178, 75
|
xy: 634, 215
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -447,84 +447,84 @@ blocks/iceedge
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/icerock1
|
blocks/icerock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 188, 75
|
xy: 178, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/icerock2
|
blocks/icerock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 198, 75
|
xy: 188, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/icerockshadow1
|
blocks/icerockshadow1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 208, 75
|
xy: 198, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/rockshadow1
|
blocks/rockshadow1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 208, 75
|
xy: 198, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/icerockshadow2
|
blocks/icerockshadow2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 218, 75
|
xy: 208, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/rockshadow2
|
blocks/rockshadow2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 218, 75
|
xy: 208, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/iron1
|
blocks/iron1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 248, 71
|
xy: 238, 71
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/iron2
|
blocks/iron2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 258, 71
|
xy: 248, 71
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/iron3
|
blocks/iron3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 268, 71
|
xy: 258, 71
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/irondrill
|
blocks/irondrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 278, 71
|
xy: 268, 71
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/ironwall
|
blocks/ironwall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 288, 71
|
xy: 278, 71
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/junction
|
blocks/junction
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 537, 140
|
xy: 288, 71
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -538,7 +538,7 @@ blocks/laserturret
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/lava
|
blocks/lava
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 300, 85
|
xy: 537, 140
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -552,28 +552,28 @@ blocks/lavaedge
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/lavasmelter
|
blocks/lavasmelter
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 310, 85
|
xy: 300, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/liquiditemjunction
|
blocks/liquiditemjunction
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 320, 85
|
xy: 310, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/liquidjunction
|
blocks/liquidjunction
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 330, 85
|
xy: 320, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/liquidrouter
|
blocks/liquidrouter
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 340, 85
|
xy: 330, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -601,14 +601,14 @@ blocks/mortarturret
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/mossblock
|
blocks/mossblock
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 350, 85
|
xy: 340, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/mossstone
|
blocks/mossstone
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 350, 85
|
xy: 340, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -629,7 +629,7 @@ blocks/nuclearreactor-center
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/nuclearreactor-icon
|
blocks/nuclearreactor-icon
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 360, 85
|
xy: 350, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -650,7 +650,7 @@ blocks/nuclearreactor-small
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/oil
|
blocks/oil
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 370, 85
|
xy: 360, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -664,14 +664,14 @@ blocks/oiledge
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/oilrefinery
|
blocks/oilrefinery
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 380, 85
|
xy: 370, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/omnidrill
|
blocks/omnidrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 390, 85
|
xy: 380, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -685,77 +685,77 @@ blocks/plasmaturret
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/playerspawn
|
blocks/playerspawn
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 400, 85
|
xy: 390, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/powerbooster
|
blocks/powerbooster
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 410, 85
|
xy: 400, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/poweredconveyor
|
blocks/poweredconveyor
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 420, 85
|
xy: 410, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/poweredconveyormove
|
blocks/poweredconveyormove
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 430, 85
|
xy: 420, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/powerlaser
|
blocks/powerlaser
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 440, 85
|
xy: 430, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/powerlasercorner
|
blocks/powerlasercorner
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 450, 85
|
xy: 440, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/powerlaserrouter
|
blocks/powerlaserrouter
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 460, 85
|
xy: 450, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/pulseconduit
|
blocks/pulseconduit
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 470, 85
|
xy: 460, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/pulseconduitbottom
|
blocks/pulseconduitbottom
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 480, 87
|
xy: 470, 85
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/pulseconduittop
|
blocks/pulseconduittop
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 298, 75
|
xy: 480, 87
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/pump
|
blocks/pump
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 308, 75
|
xy: 298, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -769,77 +769,77 @@ blocks/repairturret
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/rock1
|
blocks/rock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 318, 75
|
xy: 308, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/rock2
|
blocks/rock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 328, 75
|
xy: 318, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/router
|
blocks/router
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 338, 75
|
xy: 328, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/rtgenerator
|
blocks/rtgenerator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 348, 75
|
xy: 338, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/rtgenerator-top
|
blocks/rtgenerator-top
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 358, 75
|
xy: 348, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/sand1
|
blocks/sand1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 368, 75
|
xy: 358, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/sand2
|
blocks/sand2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 378, 75
|
xy: 368, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/sand3
|
blocks/sand3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 388, 75
|
xy: 378, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/sandblock1
|
blocks/sandblock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 398, 75
|
xy: 388, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/sandblock2
|
blocks/sandblock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 408, 75
|
xy: 398, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/sandblock3
|
blocks/sandblock3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 418, 75
|
xy: 408, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -860,7 +860,7 @@ blocks/shadow
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/shieldgenerator
|
blocks/shieldgenerator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 438, 75
|
xy: 428, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -874,28 +874,28 @@ blocks/shotgunturret
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/shrub
|
blocks/shrub
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 551, 168
|
xy: 547, 178
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/shrubshadow
|
blocks/shrubshadow
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 551, 158
|
xy: 551, 168
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/smelter
|
blocks/smelter
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 551, 148
|
xy: 551, 158
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/smelter-middle
|
blocks/smelter-middle
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 875, 417
|
xy: 551, 148
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -909,42 +909,42 @@ blocks/sniperturret
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/snow1
|
blocks/snow1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 885, 421
|
xy: 875, 417
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/snow2
|
blocks/snow2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 895, 421
|
xy: 885, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/snow3
|
blocks/snow3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 905, 421
|
xy: 895, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/snowblock1
|
blocks/snowblock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 915, 421
|
xy: 905, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/snowblock2
|
blocks/snowblock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 925, 421
|
xy: 915, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/snowblock3
|
blocks/snowblock3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 935, 421
|
xy: 925, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -958,28 +958,28 @@ blocks/snowedge
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/sorter
|
blocks/sorter
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 945, 421
|
xy: 935, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/steelconveyor
|
blocks/steelconveyor
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 955, 421
|
xy: 945, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/steelconveyormove
|
blocks/steelconveyormove
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 965, 421
|
xy: 955, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/steelwall
|
blocks/steelwall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 975, 421
|
xy: 965, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -993,56 +993,56 @@ blocks/steelwall-large
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/steelwall-large-icon
|
blocks/steelwall-large-icon
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 985, 421
|
xy: 975, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/stone1
|
blocks/stone1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 995, 421
|
xy: 985, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/stone2
|
blocks/stone2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 298, 65
|
xy: 995, 421
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/stone3
|
blocks/stone3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 308, 65
|
xy: 298, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/stoneblock1
|
blocks/stoneblock1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 318, 65
|
xy: 308, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/stoneblock2
|
blocks/stoneblock2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 328, 65
|
xy: 318, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/stoneblock3
|
blocks/stoneblock3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 338, 65
|
xy: 328, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/stonedrill
|
blocks/stonedrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 348, 65
|
xy: 338, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1056,35 +1056,35 @@ blocks/stoneedge
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/stoneformer
|
blocks/stoneformer
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 358, 65
|
xy: 348, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/stonewall
|
blocks/stonewall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 368, 65
|
xy: 358, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/teleporter
|
blocks/teleporter
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 378, 65
|
xy: 368, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/teleporter-top
|
blocks/teleporter-top
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 388, 65
|
xy: 378, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/thermalgenerator
|
blocks/thermalgenerator
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 398, 65
|
xy: 388, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1105,49 +1105,49 @@ blocks/titancannon-icon
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/titanium1
|
blocks/titanium1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 408, 65
|
xy: 398, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/titanium2
|
blocks/titanium2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 418, 65
|
xy: 408, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/titanium3
|
blocks/titanium3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 428, 65
|
xy: 418, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/titaniumdrill
|
blocks/titaniumdrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 438, 65
|
xy: 428, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/titaniumpurifier
|
blocks/titaniumpurifier
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 448, 65
|
xy: 438, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/titaniumshieldwall
|
blocks/titaniumshieldwall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 458, 65
|
xy: 448, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/titaniumwall
|
blocks/titaniumwall
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 468, 65
|
xy: 458, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1161,7 +1161,7 @@ blocks/titaniumwall-large
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/titaniumwall-large-icon
|
blocks/titaniumwall-large-icon
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 557, 178
|
xy: 468, 65
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1175,35 +1175,35 @@ blocks/turret
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/uranium1
|
blocks/uranium1
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 561, 168
|
xy: 577, 183
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/uranium2
|
blocks/uranium2
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 561, 158
|
xy: 561, 168
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/uranium3
|
blocks/uranium3
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 561, 148
|
xy: 561, 158
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/uraniumdrill
|
blocks/uraniumdrill
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 571, 169
|
xy: 561, 148
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
blocks/water
|
blocks/water
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 547, 138
|
xy: 571, 149
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1231,7 +1231,7 @@ blocks/weaponfactory
|
|||||||
index: -1
|
index: -1
|
||||||
blocks/weaponfactory-icon
|
blocks/weaponfactory-icon
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 557, 138
|
xy: 547, 138
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1511,56 +1511,56 @@ enemyarrow
|
|||||||
index: -1
|
index: -1
|
||||||
icon-coal
|
icon-coal
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 228, 75
|
xy: 218, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
icon-dirium
|
icon-dirium
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 238, 81
|
xy: 228, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
icon-iron
|
icon-iron
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 248, 81
|
xy: 238, 81
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
icon-sand
|
icon-sand
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 258, 81
|
xy: 248, 81
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
icon-steel
|
icon-steel
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 268, 81
|
xy: 258, 81
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
icon-stone
|
icon-stone
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 278, 81
|
xy: 268, 81
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
icon-titanium
|
icon-titanium
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 288, 81
|
xy: 278, 81
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
icon-uranium
|
icon-uranium
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 238, 71
|
xy: 288, 81
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1609,28 +1609,28 @@ mechs/ship-standard
|
|||||||
index: -1
|
index: -1
|
||||||
shell
|
shell
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 428, 75
|
xy: 418, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
shot
|
shot
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 468, 75
|
xy: 458, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
shot-long
|
shot-long
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 547, 178
|
xy: 468, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
titanshell
|
titanshell
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 567, 189
|
xy: 557, 178
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
@@ -1769,6 +1769,13 @@ ui/icons/icon-admin
|
|||||||
orig: 14, 14
|
orig: 14, 14
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
|
ui/icons/icon-admin-small
|
||||||
|
rotate: false
|
||||||
|
xy: 124, 82
|
||||||
|
size: 6, 6
|
||||||
|
orig: 6, 6
|
||||||
|
offset: 0, 0
|
||||||
|
index: -1
|
||||||
ui/icons/icon-areaDelete
|
ui/icons/icon-areaDelete
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 93, 2
|
xy: 93, 2
|
||||||
@@ -2483,42 +2490,42 @@ weapons/clustergun-equip
|
|||||||
index: -1
|
index: -1
|
||||||
weapons/shockgun
|
weapons/shockgun
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 448, 75
|
xy: 438, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
weapons/shockgun-equip
|
weapons/shockgun-equip
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 458, 75
|
xy: 448, 75
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
weapons/triblaster
|
weapons/triblaster
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 567, 179
|
xy: 567, 189
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
weapons/triblaster-equip
|
weapons/triblaster-equip
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 577, 183
|
xy: 567, 179
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
weapons/vulcan
|
weapons/vulcan
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 571, 159
|
xy: 571, 169
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
index: -1
|
index: -1
|
||||||
weapons/vulcan-equip
|
weapons/vulcan-equip
|
||||||
rotate: false
|
rotate: false
|
||||||
xy: 571, 149
|
xy: 571, 159
|
||||||
size: 8, 8
|
size: 8, 8
|
||||||
orig: 8, 8
|
orig: 8, 8
|
||||||
offset: 0, 0
|
offset: 0, 0
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 82 KiB |
@@ -1,7 +1,7 @@
|
|||||||
#Autogenerated file. Do not modify.
|
#Autogenerated file. Do not modify.
|
||||||
#Sun Feb 25 22:24:39 EST 2018
|
#Sun Feb 25 23:41:37 EST 2018
|
||||||
version=release
|
version=release
|
||||||
androidBuildCode=282
|
androidBuildCode=288
|
||||||
name=Mindustry
|
name=Mindustry
|
||||||
code=3.3
|
code=3.3
|
||||||
build=custom build
|
build=custom build
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ public class NetClient extends Module {
|
|||||||
public NetClient(){
|
public NetClient(){
|
||||||
|
|
||||||
Net.handleClient(Connect.class, packet -> {
|
Net.handleClient(Connect.class, packet -> {
|
||||||
|
player.isAdmin = false;
|
||||||
|
|
||||||
Net.setClientLoaded(false);
|
Net.setClientLoaded(false);
|
||||||
recieved.clear();
|
recieved.clear();
|
||||||
@@ -331,6 +332,12 @@ public class NetClient extends Module {
|
|||||||
ui.showError(packet.message);
|
ui.showError(packet.message);
|
||||||
disconnectQuietly();
|
disconnectQuietly();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Net.handleClient(PlayerAdminPacket.class, packet -> {
|
||||||
|
Player player = playerGroup.getByID(packet.id);
|
||||||
|
player.isAdmin = packet.admin;
|
||||||
|
ui.listfrag.rebuild();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ public class NetServer extends Module{
|
|||||||
Log.info("Sending data to player '{0}' / {1}", packet.name, id);
|
Log.info("Sending data to player '{0}' / {1}", packet.name, id);
|
||||||
|
|
||||||
Player player = new Player();
|
Player player = new Player();
|
||||||
|
player.isAdmin = admins.isAdmin(Net.getConnection(id).address);
|
||||||
player.clientid = id;
|
player.clientid = id;
|
||||||
player.name = packet.name;
|
player.name = packet.name;
|
||||||
player.isAndroid = packet.android;
|
player.isAndroid = packet.android;
|
||||||
@@ -109,7 +110,7 @@ public class NetServer extends Module{
|
|||||||
Player player = connections.get(id);
|
Player player = connections.get(id);
|
||||||
|
|
||||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||||
NetworkIO.writeWorld(player.id, weapons.get(player.name, new ByteArray()), stream);
|
NetworkIO.writeWorld(player, weapons.get(player.name, new ByteArray()), stream);
|
||||||
WorldData data = new WorldData();
|
WorldData data = new WorldData();
|
||||||
data.stream = new ByteArrayInputStream(stream.toByteArray());
|
data.stream = new ByteArrayInputStream(stream.toByteArray());
|
||||||
Net.sendStream(id, data);
|
Net.sendStream(id, data);
|
||||||
@@ -239,6 +240,32 @@ public class NetServer extends Module{
|
|||||||
packet.id = connections.get(id).id;
|
packet.id = connections.get(id).id;
|
||||||
Net.sendExcept(id, packet, SendMode.tcp);
|
Net.sendExcept(id, packet, SendMode.tcp);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Net.handleServer(AdministerRequestPacket.class, (id, packet) -> {
|
||||||
|
Player player = connections.get(id);
|
||||||
|
|
||||||
|
if(!player.isAdmin){
|
||||||
|
Log.err("ACCESS DENIED: Player {0} / {1} attempted to perform admin action without proper security access.",
|
||||||
|
player.name, Net.getConnection(player.clientid).address);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player other = playerGroup.getByID(packet.id);
|
||||||
|
|
||||||
|
if(other == null){
|
||||||
|
Log.err("{0} attempted to perform admin action on nonexistant player.", player.name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(packet.action == AdminAction.ban){
|
||||||
|
admins.banPlayer(Net.getConnection(other.clientid).address);
|
||||||
|
Net.kickConnection(other.clientid, KickReason.banned);
|
||||||
|
Log.info("&lc{0} has banned {1}.", player.name, other.name);
|
||||||
|
}else if(packet.action == AdminAction.kick){
|
||||||
|
Net.kickConnection(other.clientid, KickReason.kick);
|
||||||
|
Log.info("&lc{0} has kicked {1}.", player.name, other.name);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update(){
|
public void update(){
|
||||||
|
|||||||
@@ -264,8 +264,14 @@ public class Renderer extends RendererModule{
|
|||||||
Draw.color();
|
Draw.color();
|
||||||
Draw.tcolor(player.getColor());
|
Draw.tcolor(player.getColor());
|
||||||
Draw.text(player.name, player.x, player.y + 8);
|
Draw.text(player.name, player.x, player.y + 8);
|
||||||
Draw.tcolor();
|
|
||||||
}
|
if(player.isAdmin){
|
||||||
|
Draw.color(player.getColor());
|
||||||
|
float s = 3f;
|
||||||
|
Draw.rect("icon-admin-small", player.x + layout.width/2f + 2 + 1, player.y + 7f, s, s);
|
||||||
|
}
|
||||||
|
Draw.reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Pools.free(layout);
|
Pools.free(layout);
|
||||||
Draw.tscl(fontscale);
|
Draw.tscl(fontscale);
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ public class Player extends SyncEntity{
|
|||||||
|
|
||||||
public String name = "name";
|
public String name = "name";
|
||||||
public boolean isAndroid;
|
public boolean isAndroid;
|
||||||
|
public boolean isAdmin;
|
||||||
public Color color = new Color();
|
public Color color = new Color();
|
||||||
|
|
||||||
public Weapon weaponLeft = Weapon.blaster;
|
public Weapon weaponLeft = Weapon.blaster;
|
||||||
@@ -44,7 +45,7 @@ public class Player extends SyncEntity{
|
|||||||
public float stucktime = 0f;
|
public float stucktime = 0f;
|
||||||
public boolean dashing = false;
|
public boolean dashing = false;
|
||||||
|
|
||||||
public int clientid;
|
public int clientid = -1;
|
||||||
public boolean isLocal = false;
|
public boolean isLocal = false;
|
||||||
public Timer timer = new Timer(4);
|
public Timer timer = new Timer(4);
|
||||||
|
|
||||||
@@ -240,6 +241,7 @@ public class Player extends SyncEntity{
|
|||||||
buffer.put(weaponLeft.id);
|
buffer.put(weaponLeft.id);
|
||||||
buffer.put(weaponRight.id);
|
buffer.put(weaponRight.id);
|
||||||
buffer.put(isAndroid ? 1 : (byte)0);
|
buffer.put(isAndroid ? 1 : (byte)0);
|
||||||
|
buffer.put(isAdmin ? 1 : (byte)0);
|
||||||
buffer.putInt(Color.rgba8888(color));
|
buffer.putInt(Color.rgba8888(color));
|
||||||
buffer.putFloat(x);
|
buffer.putFloat(x);
|
||||||
buffer.putFloat(y);
|
buffer.putFloat(y);
|
||||||
@@ -254,6 +256,7 @@ public class Player extends SyncEntity{
|
|||||||
weaponLeft = (Weapon) Upgrade.getByID(buffer.get());
|
weaponLeft = (Weapon) Upgrade.getByID(buffer.get());
|
||||||
weaponRight = (Weapon) Upgrade.getByID(buffer.get());
|
weaponRight = (Weapon) Upgrade.getByID(buffer.get());
|
||||||
isAndroid = buffer.get() == 1;
|
isAndroid = buffer.get() == 1;
|
||||||
|
isAdmin = buffer.get() == 1;
|
||||||
color.set(buffer.getInt());
|
color.set(buffer.getInt());
|
||||||
x = buffer.getFloat();
|
x = buffer.getFloat();
|
||||||
y = buffer.getFloat();
|
y = buffer.getFloat();
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package io.anuke.mindustry.net;
|
|||||||
|
|
||||||
import io.anuke.mindustry.Vars;
|
import io.anuke.mindustry.Vars;
|
||||||
import io.anuke.mindustry.entities.BulletType;
|
import io.anuke.mindustry.entities.BulletType;
|
||||||
|
import io.anuke.mindustry.entities.Player;
|
||||||
import io.anuke.mindustry.entities.TileEntity;
|
import io.anuke.mindustry.entities.TileEntity;
|
||||||
import io.anuke.mindustry.entities.enemies.Enemy;
|
import io.anuke.mindustry.entities.enemies.Enemy;
|
||||||
import io.anuke.mindustry.net.Net.SendMode;
|
import io.anuke.mindustry.net.Net.SendMode;
|
||||||
@@ -149,4 +150,19 @@ public class NetEvents {
|
|||||||
packet.itemid = (byte)item.id;
|
packet.itemid = (byte)item.id;
|
||||||
Net.send(packet, SendMode.udp);
|
Net.send(packet, SendMode.udp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void handleAdminSet(Player player, boolean admin){
|
||||||
|
PlayerAdminPacket packet = new PlayerAdminPacket();
|
||||||
|
packet.admin = admin;
|
||||||
|
packet.id = player.id;
|
||||||
|
player.isAdmin = admin;
|
||||||
|
Net.send(packet, SendMode.tcp);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handleAdministerRequest(Player target, AdminAction action){
|
||||||
|
AdministerRequestPacket packet = new AdministerRequestPacket();
|
||||||
|
packet.id = target.id;
|
||||||
|
packet.action = action;
|
||||||
|
Net.send(packet, SendMode.tcp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.Pixmap;
|
|||||||
import com.badlogic.gdx.graphics.Pixmap.Format;
|
import com.badlogic.gdx.graphics.Pixmap.Format;
|
||||||
import com.badlogic.gdx.utils.ByteArray;
|
import com.badlogic.gdx.utils.ByteArray;
|
||||||
import com.badlogic.gdx.utils.TimeUtils;
|
import com.badlogic.gdx.utils.TimeUtils;
|
||||||
|
import io.anuke.mindustry.entities.Player;
|
||||||
import io.anuke.mindustry.game.GameMode;
|
import io.anuke.mindustry.game.GameMode;
|
||||||
import io.anuke.mindustry.resource.Upgrade;
|
import io.anuke.mindustry.resource.Upgrade;
|
||||||
import io.anuke.mindustry.resource.Weapon;
|
import io.anuke.mindustry.resource.Weapon;
|
||||||
@@ -100,7 +101,7 @@ public class NetworkIO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void writeWorld(int playerID, ByteArray upgrades, OutputStream os){
|
public static void writeWorld(Player player, ByteArray upgrades, OutputStream os){
|
||||||
|
|
||||||
try(DataOutputStream stream = new DataOutputStream(os)){
|
try(DataOutputStream stream = new DataOutputStream(os)){
|
||||||
|
|
||||||
@@ -116,7 +117,8 @@ public class NetworkIO {
|
|||||||
stream.writeInt(state.enemies); //enemy amount
|
stream.writeInt(state.enemies); //enemy amount
|
||||||
|
|
||||||
stream.writeBoolean(state.friendlyFire); //friendly fire state
|
stream.writeBoolean(state.friendlyFire); //friendly fire state
|
||||||
stream.writeInt(playerID); //player remap ID
|
stream.writeInt(player.id); //player remap ID
|
||||||
|
stream.writeBoolean(player.isAdmin);
|
||||||
|
|
||||||
//--INVENTORY--
|
//--INVENTORY--
|
||||||
|
|
||||||
@@ -246,6 +248,7 @@ public class NetworkIO {
|
|||||||
state.friendlyFire = friendlyfire;
|
state.friendlyFire = friendlyfire;
|
||||||
|
|
||||||
int pid = stream.readInt();
|
int pid = stream.readInt();
|
||||||
|
boolean admin = stream.readBoolean();
|
||||||
|
|
||||||
//inventory
|
//inventory
|
||||||
for(int i = 0; i < state.inventory.getItems().length; i ++){
|
for(int i = 0; i < state.inventory.getItems().length; i ++){
|
||||||
@@ -268,6 +271,7 @@ public class NetworkIO {
|
|||||||
|
|
||||||
Entities.clear();
|
Entities.clear();
|
||||||
player.id = pid;
|
player.id = pid;
|
||||||
|
player.isAdmin = admin;
|
||||||
player.add();
|
player.add();
|
||||||
|
|
||||||
//map
|
//map
|
||||||
|
|||||||
@@ -576,4 +576,42 @@ public class Packets {
|
|||||||
message = new String(bytes);
|
message = new String(bytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class PlayerAdminPacket implements Packet{
|
||||||
|
public boolean admin;
|
||||||
|
public int id;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(ByteBuffer buffer) {
|
||||||
|
buffer.put(admin ? (byte)1 : 0);
|
||||||
|
buffer.putInt(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(ByteBuffer buffer) {
|
||||||
|
admin = buffer.get() == 1;
|
||||||
|
id = buffer.getInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class AdministerRequestPacket implements Packet{
|
||||||
|
public AdminAction action;
|
||||||
|
public int id;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(ByteBuffer buffer) {
|
||||||
|
buffer.put((byte)action.ordinal());
|
||||||
|
buffer.putInt(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void read(ByteBuffer buffer) {
|
||||||
|
action = AdminAction.values()[buffer.get()];
|
||||||
|
id = buffer.getInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum AdminAction{
|
||||||
|
kick, ban
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ public class Registrator {
|
|||||||
ItemSetPacket.class,
|
ItemSetPacket.class,
|
||||||
ItemOffloadPacket.class,
|
ItemOffloadPacket.class,
|
||||||
NetErrorPacket.class,
|
NetErrorPacket.class,
|
||||||
|
PlayerAdminPacket.class,
|
||||||
|
AdministerRequestPacket.class,
|
||||||
};
|
};
|
||||||
private static ObjectIntMap<Class<?>> ids = new ObjectIntMap<>();
|
private static ObjectIntMap<Class<?>> ids = new ObjectIntMap<>();
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package io.anuke.mindustry.ui.dialogs;
|
package io.anuke.mindustry.ui.dialogs;
|
||||||
|
|
||||||
|
import io.anuke.mindustry.entities.Player;
|
||||||
|
import io.anuke.mindustry.net.Net;
|
||||||
|
import io.anuke.mindustry.net.NetConnection;
|
||||||
|
import io.anuke.mindustry.net.NetEvents;
|
||||||
import io.anuke.ucore.scene.ui.ScrollPane;
|
import io.anuke.ucore.scene.ui.ScrollPane;
|
||||||
import io.anuke.ucore.scene.ui.layout.Table;
|
import io.anuke.ucore.scene.ui.layout.Table;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.netServer;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
import static io.anuke.mindustry.Vars.ui;
|
|
||||||
|
|
||||||
public class AdminsDialog extends FloatingDialog {
|
public class AdminsDialog extends FloatingDialog {
|
||||||
|
|
||||||
@@ -40,6 +43,13 @@ public class AdminsDialog extends FloatingDialog {
|
|||||||
res.addImageButton("icon-cancel", 14*3, () -> {
|
res.addImageButton("icon-cancel", 14*3, () -> {
|
||||||
ui.showConfirm("$text.confirm", "$text.confirmunadmin", () -> {
|
ui.showConfirm("$text.confirm", "$text.confirmunadmin", () -> {
|
||||||
netServer.admins.unAdminPlayer(ip);
|
netServer.admins.unAdminPlayer(ip);
|
||||||
|
for(Player player : playerGroup.all()){
|
||||||
|
NetConnection c = Net.getConnection(player.clientid);
|
||||||
|
if(c != null){
|
||||||
|
NetEvents.handleAdminSet(player, false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
setup();
|
setup();
|
||||||
});
|
});
|
||||||
}).size(h).pad(-14f);
|
}).size(h).pad(-14f);
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ public class HostDialog extends FloatingDialog{
|
|||||||
Timers.runTask(5f, () -> {
|
Timers.runTask(5f, () -> {
|
||||||
try{
|
try{
|
||||||
Net.host(Vars.port);
|
Net.host(Vars.port);
|
||||||
|
player.isAdmin = true;
|
||||||
}catch (IOException e){
|
}catch (IOException e){
|
||||||
ui.showError(Bundles.format("text.server.error", Strings.parseException(e, false)));
|
ui.showError(Bundles.format("text.server.error", Strings.parseException(e, false)));
|
||||||
}
|
}
|
||||||
@@ -58,19 +59,4 @@ public class HostDialog extends FloatingDialog{
|
|||||||
});
|
});
|
||||||
}).width(w).height(70f);
|
}).width(w).height(70f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
showTextInput("$text.hostserver", "$text.server.port", Vars.port + "", new DigitsOnlyFilter(), text -> {
|
|
||||||
int result = Strings.parseInt(text);
|
|
||||||
if(result == Integer.MIN_VALUE || result >= 65535){
|
|
||||||
ui.showError("$text.server.invalidport");
|
|
||||||
}else{
|
|
||||||
try{
|
|
||||||
Net.host(result);
|
|
||||||
}catch (IOException e){
|
|
||||||
ui.showError(Bundles.format("text.server.error", Strings.parseException(e, false)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
package io.anuke.mindustry.ui.fragments;
|
package io.anuke.mindustry.ui.fragments;
|
||||||
|
|
||||||
|
import io.anuke.mindustry.Vars;
|
||||||
import io.anuke.mindustry.core.GameState.State;
|
import io.anuke.mindustry.core.GameState.State;
|
||||||
import io.anuke.mindustry.entities.Player;
|
import io.anuke.mindustry.entities.Player;
|
||||||
import io.anuke.mindustry.net.Net;
|
import io.anuke.mindustry.net.Net;
|
||||||
import io.anuke.mindustry.net.NetConnection;
|
import io.anuke.mindustry.net.NetConnection;
|
||||||
import io.anuke.mindustry.net.NetEvents;
|
import io.anuke.mindustry.net.NetEvents;
|
||||||
|
import io.anuke.mindustry.net.Packets.AdminAction;
|
||||||
import io.anuke.mindustry.net.Packets.KickReason;
|
import io.anuke.mindustry.net.Packets.KickReason;
|
||||||
import io.anuke.mindustry.ui.BorderImage;
|
import io.anuke.mindustry.ui.BorderImage;
|
||||||
import io.anuke.ucore.core.Inputs;
|
import io.anuke.ucore.core.Inputs;
|
||||||
@@ -86,7 +88,7 @@ public class PlayerListFragment implements Fragment{
|
|||||||
for(Player player : playerGroup.all()){
|
for(Player player : playerGroup.all()){
|
||||||
NetConnection connection = Net.getConnection(player.clientid);
|
NetConnection connection = Net.getConnection(player.clientid);
|
||||||
|
|
||||||
if(connection == null && !player.isLocal) continue;
|
if(connection == null && Net.server() && !player.isLocal) continue;
|
||||||
|
|
||||||
Table button = new Table("button");
|
Table button = new Table("button");
|
||||||
button.left();
|
button.left();
|
||||||
@@ -113,7 +115,9 @@ public class PlayerListFragment implements Fragment{
|
|||||||
button.labelWrap("[#" + player.getColor().toString().toUpperCase() + "]" + player.name).width(170f).pad(10);
|
button.labelWrap("[#" + player.getColor().toString().toUpperCase() + "]" + player.name).width(170f).pad(10);
|
||||||
button.add().grow();
|
button.add().grow();
|
||||||
|
|
||||||
if(Net.server() && !player.isLocal){
|
button.addImage("icon-admin").size(14*2).visible(() -> player.isAdmin && !(!player.isLocal && Net.server())).padRight(5);
|
||||||
|
|
||||||
|
if((Net.server() || Vars.player.isAdmin) && !player.isLocal && !player.isAdmin){
|
||||||
button.add().growY();
|
button.add().growY();
|
||||||
|
|
||||||
float bs = (h + 14)/2f;
|
float bs = (h + 14)/2f;
|
||||||
@@ -123,30 +127,45 @@ public class PlayerListFragment implements Fragment{
|
|||||||
|
|
||||||
t.addImageButton("icon-ban", 14*2, () -> {
|
t.addImageButton("icon-ban", 14*2, () -> {
|
||||||
ui.showConfirm("$text.confirm", "$text.confirmban", () -> {
|
ui.showConfirm("$text.confirm", "$text.confirmban", () -> {
|
||||||
netServer.admins.banPlayer(connection.address);
|
if(Net.server()) {
|
||||||
Net.kickConnection(player.clientid, KickReason.banned);
|
netServer.admins.banPlayer(connection.address);
|
||||||
|
Net.kickConnection(player.clientid, KickReason.banned);
|
||||||
|
}else{
|
||||||
|
NetEvents.handleAdministerRequest(player, AdminAction.ban);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}).padBottom(-5.1f);
|
}).padBottom(-5.1f);
|
||||||
|
|
||||||
t.addImageButton("icon-cancel", 14*2, () -> Net.kickConnection(player.clientid, KickReason.kick)).padBottom(-5.1f);
|
t.addImageButton("icon-cancel", 14*2, () -> {
|
||||||
|
if(Net.server()) {
|
||||||
|
Net.kickConnection(player.clientid, KickReason.kick);
|
||||||
|
}else{
|
||||||
|
NetEvents.handleAdministerRequest(player, AdminAction.kick);
|
||||||
|
}
|
||||||
|
}).padBottom(-5.1f);
|
||||||
|
|
||||||
t.row();
|
t.row();
|
||||||
|
|
||||||
t.addImageButton("icon-admin", "toggle", 14*2, () -> {
|
t.addImageButton("icon-admin", "toggle", 14*2, () -> {
|
||||||
|
if(Net.client()) return;
|
||||||
|
|
||||||
if(netServer.admins.isAdmin(connection.address)){
|
if(netServer.admins.isAdmin(connection.address)){
|
||||||
ui.showConfirm("$text.confirm", "$text.confirmunadmin", () -> {
|
ui.showConfirm("$text.confirm", "$text.confirmunadmin", () -> {
|
||||||
netServer.admins.unAdminPlayer(connection.address);
|
netServer.admins.unAdminPlayer(connection.address);
|
||||||
//TODO send aproppriate packets.
|
NetEvents.handleAdminSet(player, false);
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
ui.showConfirm("$text.confirm", "$text.confirmadmin", () -> {
|
ui.showConfirm("$text.confirm", "$text.confirmadmin", () -> {
|
||||||
netServer.admins.adminPlayer(connection.address);
|
netServer.admins.adminPlayer(connection.address);
|
||||||
//TODO send aproppriate packets.
|
NetEvents.handleAdminSet(player, true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).update(b -> b.setChecked(netServer.admins.isAdmin(connection.address)));
|
}).update(b -> b.setChecked(connection != null && netServer.admins.isAdmin(connection.address)))
|
||||||
|
.disabled(Net.client());
|
||||||
|
|
||||||
|
//TODO unused?
|
||||||
|
t.addImageButton("icon-cancel", 14*2, () -> {});
|
||||||
|
|
||||||
t.addImageButton("icon-cancel", 14*2, () -> Net.kickConnection(player.clientid, KickReason.kick));
|
|
||||||
}).padRight(12).padTop(-5).padLeft(0).padBottom(-10).size(bs + 10f, bs);
|
}).padRight(12).padTop(-5).padLeft(0).padBottom(-10).size(bs + 10f, bs);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -355,6 +355,7 @@ public class ServerControl extends Module {
|
|||||||
if(target != null){
|
if(target != null){
|
||||||
String ip = Net.getConnection(player.clientid).address;
|
String ip = Net.getConnection(player.clientid).address;
|
||||||
netServer.admins.adminPlayer(ip);
|
netServer.admins.adminPlayer(ip);
|
||||||
|
NetEvents.handleAdminSet(target, true);
|
||||||
info("Admin-ed player by IP: {0} / {1}", ip, arg[0]);
|
info("Admin-ed player by IP: {0} / {1}", ip, arg[0]);
|
||||||
}else{
|
}else{
|
||||||
info("Nobody with that name could be found.");
|
info("Nobody with that name could be found.");
|
||||||
@@ -379,6 +380,7 @@ public class ServerControl extends Module {
|
|||||||
if(target != null){
|
if(target != null){
|
||||||
String ip = Net.getConnection(player.clientid).address;
|
String ip = Net.getConnection(player.clientid).address;
|
||||||
netServer.admins.unAdminPlayer(ip);
|
netServer.admins.unAdminPlayer(ip);
|
||||||
|
NetEvents.handleAdminSet(target, false);
|
||||||
info("Un-admin-ed player by IP: {0} / {1}", ip, arg[0]);
|
info("Un-admin-ed player by IP: {0} / {1}", ip, arg[0]);
|
||||||
}else{
|
}else{
|
||||||
info("Nobody with that name could be found.");
|
info("Nobody with that name could be found.");
|
||||||
|
|||||||
Reference in New Issue
Block a user