summaryrefslogtreecommitdiff
path: root/spawnplayer.py
diff options
context:
space:
mode:
authorjomo <github@jomo.tv>2014-06-20 22:23:09 +0200
committerjomo <github@jomo.tv>2014-06-20 22:23:09 +0200
commit031dea64e23fb5d85d009351a16b7bac16b0b95f (patch)
tree38103bef972ff0da1fcc0241c685ad0b6935aa9c /spawnplayer.py
parentd4a14b46014fed76bc877bc9e0dff51a58c5f513 (diff)
add (unused) code to create awesome screenshots :D
Diffstat (limited to 'spawnplayer.py')
-rw-r--r--spawnplayer.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/spawnplayer.py b/spawnplayer.py
new file mode 100644
index 0000000..0eb92bf
--- /dev/null
+++ b/spawnplayer.py
@@ -0,0 +1,60 @@
+import net.minecraft.server.v1_7_R1.EntityPlayer as EntityPlayer
+import net.minecraft.server.v1_7_R1.PacketPlayOutNamedEntitySpawn as PacketPlayOutNamedEntitySpawn
+import net.minecraft.server.v1_7_R1.PlayerInteractManager as PlayerInteractManager
+import net.minecraft.util.com.mojang.authlib.GameProfile as GameProfile
+import org.bukkit.Bukkit as bukkit
+
+# players.txt contains 1 name per line
+players = [line.strip() for line in open("players.txt").readlines()]
+
+ground = 70 # sea level
+shift = 1.625 # amount of blocks to add on each side per row (this is for FOV 90)
+amount = 6 # amount of players in first row
+margin = 1 # space between players
+row = 1 # distance to first row of players
+goup = 6 # after how many rows should we go up by one?
+upmul = 0.95 # multiplicate with goup each row
+
+def spawn(dispname, sender, x, y, z):
+ """
+ Sends the actual player to sender
+ """
+ server = bukkit.getServer().getServer()
+ world = server.getWorldServer(0) # main world
+ profile = GameProfile(dispname, dispname) # set player details
+ manager = PlayerInteractManager(world)
+ entity = EntityPlayer(server, world, profile, manager) # create Player's entity
+ entity.setPosition(x, y, z)
+ packet = PacketPlayOutNamedEntitySpawn(entity) # create packet for entity spawn
+ sender.getHandle().playerConnection.sendPacket(packet) # send packet
+
+
+@hook.command("spawnplayer")
+def onSpawnplayerCommand(sender, args):
+ global amount, row, ground, goup
+
+ # X and Z position
+ xpos = sender.getLocation().add(-float(row-1 * shift + (amount * margin) / 2), 0, 0).getX()
+ row = sender.getLocation().add(0, 0, -row).getZ()
+
+ count = 0
+ stop = False
+ while not stop:
+ for i in range(amount):
+ player = players[count]
+ x = int(xpos + i*margin)
+ spawn(player, sender, x, ground, row)
+ print(player, x, ground, row)
+ count += 1
+ if count >= len(players):
+ stop = True
+ print "breaking"
+ break
+ print("next row")
+ row -= 1 # next row (-z)
+ xpos -= shift # shift left
+ amount += int(shift*margin*2) # add players left and right
+ if abs(row) % int(goup) == 0:
+ goup *= upmul
+ ground += 1
+ print "Going up by 1: %s" % ground \ No newline at end of file