diff --git a/README.md b/README.md index e03fbf9..64ea7d0 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,10 @@ If you want the server to load a file (*module*) on startup, add it to the `modu > Adds `/damnspam`, creates timeout for buttons/levers to mitigate button spam. +* `forcefield.py` + + > Adds '/forcefield', creates forcefield for players who want it. + # Code styleguide & tips ## Indentation diff --git a/forcefield.py b/forcefield.py new file mode 100644 index 0000000..35b57d4 --- /dev/null +++ b/forcefield.py @@ -0,0 +1,36 @@ +from helpers import * + +forcefield_permission = "utils.forcefield" +forcefield_prefix = "&8[&aFF&8]" +fd = 4 # forcefield distance + +forcefield_toggle = [] + +#forcefield toggle +@hook.command("forcefield") +def onActCommand(sender, args): + if not sender.hasPermission(forcefield_permission): + noperm(sender) + return True + UUID = str(sender.getUniqueId()) + if UUID in forcefield_toggle: + forcefield_toggle.remove(UUID) + msg(sender, "%s &aForceField toggle: &cOFF" % forcefield_prefix) + else: + forcefield_toggle.append(UUID) + msg(sender, "%s &aForceField toggle: &2ON" % forcefield_prefix) + return True + + +@hook.event("player.PlayerMoveEvent") +def onMove(event): + player = event.getPlayer() + if not player.hasPermission(forcefield_permission): + for entity in player.getNearbyEntities(fd, fd, fd): + if isPlayer(entity) and str(entity.getUniqueId()) in forcefield_toggle: + event.setCancelled(True) + msg(sender, "%s &cYou are not allowed to get closer than %sm to %s" % (forcefield_prefix, fd, entity.getDisplayName())) + break + + + diff --git a/main.py b/main.py index cacd12a..a97930b 100644 --- a/main.py +++ b/main.py @@ -42,7 +42,8 @@ load_modules = [ "mentio", "cycle", "motd", - "abot" + "abot", + "forcefield" ] shared["modules"] = {} for module in load_modules: @@ -51,4 +52,4 @@ for module in load_modules: log("Module %s loaded." % module) except: error("Failed to import module %s:" % module) - error(print_traceback()) \ No newline at end of file + error(print_traceback())