Added vanish module, a simple replacement for the essentials version
I tried to use underscores where ever I could ^^
This commit is contained in:
4
main.py
4
main.py
@@ -90,7 +90,9 @@ shared["load_modules"] = [
|
||||
# vanish toggle module - temporary fix
|
||||
"vanishfix",
|
||||
# obisidian mining punishment plugin
|
||||
"punishments"
|
||||
"punishments",
|
||||
# a simple replacement for the buggy essentials /vanish
|
||||
"vanish"
|
||||
]
|
||||
shared["modules"] = {}
|
||||
for module in shared["load_modules"]:
|
||||
|
||||
120
vanish.py
Normal file
120
vanish.py
Normal file
@@ -0,0 +1,120 @@
|
||||
from helpers import *
|
||||
from basecommands import simplecommand
|
||||
from basecommands import Validate
|
||||
|
||||
vanished = []
|
||||
|
||||
|
||||
def is_authorized(player):
|
||||
return player.hasPermission("utils.vanish")
|
||||
|
||||
|
||||
def is_vanished(player):
|
||||
return uid(player) in vanished
|
||||
|
||||
|
||||
#this can be used to silently set the vanished state of a player
|
||||
def set_state(player, state):
|
||||
if state == is_vanished(player):
|
||||
return
|
||||
|
||||
if state:
|
||||
enable_vanish(player)
|
||||
else:
|
||||
disable_vanish(player)
|
||||
|
||||
|
||||
def enable_vanish(target):
|
||||
vanished.append(uid(target))
|
||||
for player in list(server.getOnlinePlayers()):
|
||||
player.hidePlayer(target)
|
||||
|
||||
|
||||
def disable_vanish(target):
|
||||
vanished.remove(uid(target))
|
||||
for player in list(server.getOnlinePlayers()):
|
||||
player.showPlayer(target)
|
||||
|
||||
|
||||
@simplecommand("vanish",
|
||||
aliases = ["v"],
|
||||
usage = "[on/off]",
|
||||
description = "Toggles vanish mode, hiding you and your online status \nfrom other players.",
|
||||
senderLimit = 0,
|
||||
amin = 0,
|
||||
amax = 1,
|
||||
helpNoargs = False,
|
||||
helpSubcmd = True
|
||||
)
|
||||
def vanish_command(sender, command, label, args):
|
||||
try:
|
||||
current_state = is_vanished(sender)
|
||||
new_state = not current_state
|
||||
|
||||
if len(args) == 1:
|
||||
arg = args[0].lower()
|
||||
if arg == "on":
|
||||
new_state = True
|
||||
elif arg == "off":
|
||||
new_state = False
|
||||
|
||||
if current_state == new_state:
|
||||
return "&cYou were %s vanished!" % ("already" if current_state else "not yet")
|
||||
|
||||
set_state(sender, new_state)
|
||||
return "&a%s vanish mode!" % ("Enabled" if new_state else "Disabled")
|
||||
except:
|
||||
error(trace())
|
||||
|
||||
|
||||
@hook.event("player.PlayerJoinEvent")
|
||||
def on_player_join(event):
|
||||
player = event.getPlayer()
|
||||
|
||||
if not is_authorized(player):
|
||||
for uuid in vanished:
|
||||
player.hidePlayer(retrieve_player(uuid))
|
||||
|
||||
elif is_vanished(player):
|
||||
msg(player, "&cKeep in mind that you are still vanished! Use /vanish to disable.")
|
||||
|
||||
|
||||
@hook.event("player.PlayerQuitEvent")
|
||||
def on_player_quit(event):
|
||||
player = event.getPlayer()
|
||||
|
||||
if not is_authorized(player):
|
||||
for uuid in vanished:
|
||||
player.showPlayer(retrieve_player(uuid))
|
||||
|
||||
|
||||
@simplecommand("vanishother",
|
||||
usage = "{player} [on/off]",
|
||||
description = "Toggles vanish mode for someone, hiding them and their online status from other players.",
|
||||
amin = 1,
|
||||
amax = 2,
|
||||
helpNoargs = True,
|
||||
helpSubcmd = True)
|
||||
def vanishother_command(sender, command, label, args):
|
||||
target = server.getPlayer(args[0])
|
||||
Validate.notNone(target, "&cThe specified player is not online")
|
||||
|
||||
current_state = is_vanished(target)
|
||||
new_state = not current_state
|
||||
|
||||
if len(args) == 2:
|
||||
arg = args[1].lower()
|
||||
if arg == "on":
|
||||
new_state = True
|
||||
elif arg == "off":
|
||||
new_state = False
|
||||
|
||||
if current_state == new_state:
|
||||
return "&cThat player was already vanished!" if current_state else "&cThat player was not yet vanished!"
|
||||
|
||||
set_state(target, new_state)
|
||||
|
||||
enabled_str = "enabled" if new_state else "disabled"
|
||||
if target != sender:
|
||||
msg(target, "&aVanish mode %s by %s" % (enabled_str, sender.getDisplayName() if is_player(sender) else "&9CONSOLE"))
|
||||
return "&aVanish mode %s%s" % (enabled_str, " for " + target.getDisplayName() if target != sender else "")
|
||||
Reference in New Issue
Block a user