这可能吗?我现在正在做一个bukkit插件(在Python中,是的:D),我被迫在一个函数中执行此操作,因此我无法将其分开并稍后调用它...例如,如果我有循环循环通过服务器上的玩家并添加除了一个玩家之外的所有人,我希望它完成,然后将“Player1”传送到随机玩家。目前,由于for循环,它每次都会将“Player1”传送给随机播放器...我会给你一些代码,因为它在预览中看起来很乱,因为许多事情没有涉及问题而且可能是对你有用......这是:
listica = []
for p1 in org.bukkit.Bukkit.getWorld(nextvalue).getPlayers():
if p1.getName() not in listica:
try:
listica.remove(event.getPlayer().getName())
randomtarget = choice(listica)
randomtargetreal = org.bukkit.Bukkit.getPlayer(randomtarget)
event.getPlayer().teleport(randomtargetreal)
event.getPlayer().sendMessage("%sYou teleported to: %s%s"% (bukkit.ChatColor.GREEN, bukkit.ChatColor.DARK_GREEN, randomtarget))
except ValueError:
randomtarget = choice(listica)
randomtargetreal = org.bukkit.Bukkit.getPlayer(randomtarget)
if event.getPlayer().getLocation() != randomtargetreal.getLocation():
event.getPlayer().teleport(randomtargetreal)
event.getPlayer().sendMessage("%sYou teleported to: %s%s"%(bukkit.ChatColor.GREEN, bukkit.ChatColor.DARK_GREEN, randomtarget))
我想要的是:
run for loop:
when there is no more players to add a.k.a it finishes
do try loop
P.S。我不能在单独的功能中做到这一点。
提前致谢! :)
答案 0 :(得分:1)
你的意思是:
def func(args):
for item in loop:
do something
try: # note indentation
something else