diff options
author | jomo <github@jomo.tv> | 2015-01-06 23:38:42 +0100 |
---|---|---|
committer | jomo <github@jomo.tv> | 2015-01-06 23:38:42 +0100 |
commit | 9a916ed2cd9440d46079f9b7db421a7b9fcbf6ee (patch) | |
tree | 3af33b3ddc2fa3159f9243b0ade09b3e3cc96425 /forcefield.py | |
parent | 3435e994326b14f700777741a76dd990a2bc703f (diff) |
change indentation from 2 spaces to 4, fix #5
Diffstat (limited to 'forcefield.py')
-rw-r--r-- | forcefield.py | 276 |
1 files changed, 138 insertions, 138 deletions
diff --git a/forcefield.py b/forcefield.py index 497c853..f76f873 100644 --- a/forcefield.py +++ b/forcefield.py @@ -18,130 +18,130 @@ whitelists = {} # {ff_owner_id: [white, listed, ids]} (Adding file usage later, @hook.command("forcefield") def on_forcefield_command(sender, args): - if not is_player(sender) or not sender.hasPermission(ff_perm): - noperm(sender) - return True - - if not args or args[0].upper() in ["ON", "OFF"]: # Toggle - forcefield_toggle(sender, args[:1]) - return True + if not is_player(sender) or not sender.hasPermission(ff_perm): + noperm(sender) + return True + + if not args or args[0].upper() in ["ON", "OFF"]: # Toggle + forcefield_toggle(sender, args[:1]) + return True + + args[0] = args[0].upper() # If it gets to this point, there are argument(s). + if args[0] in ["WHITELIST", "WL", "WLIST"]: # Whitelist commands + if not args[1:] or args[1].upper() == "LIST": + thread.start_new_thread(whitelist_list, (sender,)) + return True + + args[1] = args[1].upper() # If it gets too this point, there is a second argument. + if args[1] == "CLEAR": + whitelist_clear(sender) + elif args[1] in ["ADD", "+"]: + change_whitelist(sender, True, args[2:]) + elif args[1] in ["REMOVE", "DELETE", "REM", "DEL", "-"]: + change_whitelist(sender, False, args[2:]) + else: + forcefield_header(sender, "&cInvalid syntax. Use &e/ff ? &cfor info.") - args[0] = args[0].upper() # If it gets to this point, there are argument(s). - if args[0] in ["WHITELIST", "WL", "WLIST"]: # Whitelist commands - if not args[1:] or args[1].upper() == "LIST": - thread.start_new_thread(whitelist_list, (sender,)) - return True - - args[1] = args[1].upper() # If it gets too this point, there is a second argument. - if args[1] == "CLEAR": - whitelist_clear(sender) - elif args[1] in ["ADD", "+"]: - change_whitelist(sender, True, args[2:]) - elif args[1] in ["REMOVE", "DELETE", "REM", "DEL", "-"]: - change_whitelist(sender, False, args[2:]) + elif args[0] in ["HELP", "?"]: # /forcefield help + forcefield_help(sender) else: - forcefield_header(sender, "&cInvalid syntax. Use &e/ff ? &cfor info.") - - elif args[0] in ["HELP", "?"]: # /forcefield help - forcefield_help(sender) - else: - forcefield_header(sender, "&cInvalid syntax. Use &e/ff ? &cfor info.") - return True + forcefield_header(sender, "&cInvalid syntax. Use &e/ff ? &cfor info.") + return True def change_whitelist(sender, add, names): #Add names if add == True else Remove names. - if names: - sender_id = uid(sender) - if sender_id not in whitelists: - whitelists[sender_id] = [] - - for name in names: - player = server.getPlayer(name) - if player: - player_id = uid(player) - pname = player.getName() - sname = stripcolors(sender.getDisplayName()) - - # add player to whitelist if not already added - if add and player_id not in whitelists[sender_id]: - if sender != player: - whitelists[sender_id].append(player_id) - forcefield_header(sender, "&bAdded &f%s &bto your forcefield whitelist." % pname) - forcefield_header(player, "&f%s &badded you to his forcefield whitelist." % sname) - else: - forcefield_header(sender, "&cYou can't whitelist yourself.") - - # remove player from whitelist if whitelisted - elif not add and player_id in whitelists[sender_id]: - whitelists[sender_id].remove(player_id) - forcefield_header(sender, "&cRemoved &f%s &cfrom your forcefield whitelist." % pname) - forcefield_header(player, "&f%s &cremoved you from his forcefield whitelist." % sname) - - # player was already / not added to whitelist - else: - var = "already" if add == True else "not" - forcefield_header(sender, "&f%s &cwas %s in your forcefield whitelist!" % (pname, var)) - - else: - forcefield_header(sender, "&cplayer &f%s &cwas not found (must be online)." % name) - else: - forcefield_header(sender, "&cGive space-separated playernames.") + if names: + sender_id = uid(sender) + if sender_id not in whitelists: + whitelists[sender_id] = [] + + for name in names: + player = server.getPlayer(name) + if player: + player_id = uid(player) + pname = player.getName() + sname = stripcolors(sender.getDisplayName()) + + # add player to whitelist if not already added + if add and player_id not in whitelists[sender_id]: + if sender != player: + whitelists[sender_id].append(player_id) + forcefield_header(sender, "&bAdded &f%s &bto your forcefield whitelist." % pname) + forcefield_header(player, "&f%s &badded you to his forcefield whitelist." % sname) + else: + forcefield_header(sender, "&cYou can't whitelist yourself.") + + # remove player from whitelist if whitelisted + elif not add and player_id in whitelists[sender_id]: + whitelists[sender_id].remove(player_id) + forcefield_header(sender, "&cRemoved &f%s &cfrom your forcefield whitelist." % pname) + forcefield_header(player, "&f%s &cremoved you from his forcefield whitelist." % sname) + + # player was already / not added to whitelist + else: + var = "already" if add == True else "not" + forcefield_header(sender, "&f%s &cwas %s in your forcefield whitelist!" % (pname, var)) + + else: + forcefield_header(sender, "&cplayer &f%s &cwas not found (must be online)." % name) + else: + forcefield_header(sender, "&cGive space-separated playernames.") def whitelist_list(player): - try: - player_id = uid(player) - count = 0 - forcefield_header(player, "&bForcefield whitelist:") - for user_id in whitelists.get(player_id, []): - count += 1 - pname = retrieve_player(user_id).getName() - msg(player, "&b %s. &f%s" % (count, pname)) - if count == 0: - msg(player, "&c Your whitelist has no entries.") - except: - warn("Unable to finish whitelist_list process") + try: + player_id = uid(player) + count = 0 + forcefield_header(player, "&bForcefield whitelist:") + for user_id in whitelists.get(player_id, []): + count += 1 + pname = retrieve_player(user_id).getName() + msg(player, "&b %s. &f%s" % (count, pname)) + if count == 0: + msg(player, "&c Your whitelist has no entries.") + except: + warn("Unable to finish whitelist_list process") def whitelist_clear(player): - player_id = uid(player) - if whitelists.get(player_id): - whitelists.pop(player_id) - forcefield_header(player, "&bForcefield whitelist cleared.") - else: - forcefield_header(player, "&cYou had no players whitelisted.") + player_id = uid(player) + if whitelists.get(player_id): + whitelists.pop(player_id) + forcefield_header(player, "&bForcefield whitelist cleared.") + else: + forcefield_header(player, "&cYou had no players whitelisted.") def forcefield_help(player): - msg(player, " ") - forcefield_header(player, "&b&l/Forcefield help: Your forcefield is %s" % ("&2&lON" if uid(player) in ff_users else "&c&lOFF")) - msg(player, "&b You can use the forcefield to keep players on distance.") - msg(player, "&b Commands:") - msg(player, "&b 1. &6/ff &ohelp &b aliases: &6?") - msg(player, "&b 2. &6/ff &o(on off)") - msg(player, "&b 3. &6/ff &owhitelist (list) &b aliases: &6wlist, wl") - msg(player, "&b 4. &6/ff wl &oclear") - msg(player, "&b 5. &6/ff wl &oadd <players> &b aliases: &6+") - msg(player, "&b 6. &6/ff wl &oremove <players> &b aliases: &6delete, rem, del, -") - msg(player, " ") + msg(player, " ") + forcefield_header(player, "&b&l/Forcefield help: Your forcefield is %s" % ("&2&lON" if uid(player) in ff_users else "&c&lOFF")) + msg(player, "&b You can use the forcefield to keep players on distance.") + msg(player, "&b Commands:") + msg(player, "&b 1. &6/ff &ohelp &b aliases: &6?") + msg(player, "&b 2. &6/ff &o(on off)") + msg(player, "&b 3. &6/ff &owhitelist (list) &b aliases: &6wlist, wl") + msg(player, "&b 4. &6/ff wl &oclear") + msg(player, "&b 5. &6/ff wl &oadd <players> &b aliases: &6+") + msg(player, "&b 6. &6/ff wl &oremove <players> &b aliases: &6delete, rem, del, -") + msg(player, " ") def forcefield_toggle(player, arg): # arg is a list with max 1 string - player_id = uid(player) - enabled = player_id in ff_users - argoff = arg[0].upper() == "OFF" if arg else False - if enabled and (not arg or argoff): # 3 possibilities for arg: [], ["OFF"], ["ON"]. This is the most efficient way. (Case insensitive) - ff_users.remove(player_id) - forcefield_header(player, "&bForcefield toggle: &c&lOFF") - elif not enabled and not argoff: - ff_users.append(player_id) - forcefield_header(player, "&bForcefield toggle: &2&lON") - else: - forcefield_header(player, "&cYour forcefield is already %s!" % arg[0].lower()) + player_id = uid(player) + enabled = player_id in ff_users + argoff = arg[0].upper() == "OFF" if arg else False + if enabled and (not arg or argoff): # 3 possibilities for arg: [], ["OFF"], ["ON"]. This is the most efficient way. (Case insensitive) + ff_users.remove(player_id) + forcefield_header(player, "&bForcefield toggle: &c&lOFF") + elif not enabled and not argoff: + ff_users.append(player_id) + forcefield_header(player, "&bForcefield toggle: &2&lON") + else: + forcefield_header(player, "&cYour forcefield is already %s!" % arg[0].lower()) def forcefield_header(player, message): - msg(player, "%s %s" % (ff_prefix, message)) + msg(player, "%s %s" % (ff_prefix, message)) #--------------------------------------------------------------------------------------------------------# @@ -149,41 +149,41 @@ def forcefield_header(player, message): @hook.event("player.PlayerMoveEvent") def on_move(event): - if ff_users: - player = event.getPlayer() - if is_creative(player): - player_id = uid(player) - - # moving player has forcefield, nearby player should be moved away - if player_id in ff_users: - for entity in player.getNearbyEntities(fd, fd, fd): - whitelisted = (uid(entity) in whitelists.get(player_id, [])) - if is_player(entity) and not entity.hasPermission(pass_perm) and not whitelisted: - move_away(player, entity) - - # nearby player has forcefield, moving player should be moved away - if not player.hasPermission(pass_perm): - for entity in player.getNearbyEntities(fd, fd, fd): - entity_id = uid(entity) - ff_enabled = (entity_id in ff_users) - whitelisted = (player_id in whitelists.get(entity_id, [])) - if is_player(entity) and is_creative(entity) and ff_enabled and not whitelisted: - move_away(entity, player) + if ff_users: + player = event.getPlayer() + if is_creative(player): + player_id = uid(player) + + # moving player has forcefield, nearby player should be moved away + if player_id in ff_users: + for entity in player.getNearbyEntities(fd, fd, fd): + whitelisted = (uid(entity) in whitelists.get(player_id, [])) + if is_player(entity) and not entity.hasPermission(pass_perm) and not whitelisted: + move_away(player, entity) + + # nearby player has forcefield, moving player should be moved away + if not player.hasPermission(pass_perm): + for entity in player.getNearbyEntities(fd, fd, fd): + entity_id = uid(entity) + ff_enabled = (entity_id in ff_users) + whitelisted = (player_id in whitelists.get(entity_id, [])) + if is_player(entity) and is_creative(entity) and ff_enabled and not whitelisted: + move_away(entity, player) def move_away(player, entity): - # Pushes entity away from player + # Pushes entity away from player - player_loc = player.getLocation() - entity_loc = entity.getLocation() + player_loc = player.getLocation() + entity_loc = entity.getLocation() - dx = entity_loc.getX() - player_loc.getX() - vx = sin(Xv * dx) - dy = entity_loc.getY() - player_loc.getY() - vy = sin(Xv * dy) - dz = entity_loc.getZ() - player_loc.getZ() - vz = sin(Xv * dz) - entity.setVelocity(Vector(vx , vy, vz)) + dx = entity_loc.getX() - player_loc.getX() + vx = sin(Xv * dx) + dy = entity_loc.getY() - player_loc.getY() + vy = sin(Xv * dy) + dz = entity_loc.getZ() - player_loc.getZ() + vz = sin(Xv * dz) + entity.setVelocity(Vector(vx , vy, vz)) #--------------------------------------------------------------------------------------------------------# @@ -191,7 +191,7 @@ def move_away(player, entity): @hook.event("player.PlayerQuitEvent") def on_quit(event): - player = event.getPlayer() - player_id = uid(player) - if player_id in ff_users: - ff_users.remove(player_id)
\ No newline at end of file + player = event.getPlayer() + player_id = uid(player) + if player_id in ff_users: + ff_users.remove(player_id)
\ No newline at end of file |