From 031dea64e23fb5d85d009351a16b7bac16b0b95f Mon Sep 17 00:00:00 2001 From: jomo Date: Fri, 20 Jun 2014 22:23:09 +0200 Subject: add (unused) code to create awesome screenshots :D --- spawnplayer.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 spawnplayer.py (limited to 'spawnplayer.py') 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 -- cgit v1.2.3