modified: loginsecurity.py

Fixed scheduler and commands
This commit is contained in:
NEMESIS13cz
2015-07-23 01:20:07 +02:00
parent f64d3074e1
commit 09e0d761f5

View File

@@ -6,8 +6,7 @@ import threading
from login_secrets import * #Don't forget to make login_secrets aswell
import mysqlhack
from com.ziclix.python.sql import zxJDBC
import subprocess
from java.lang import Runnable
wait_time = 5 #seconds
admin_perm = "utils.loginsecurity.admin"
@@ -40,6 +39,8 @@ def matches_thread(password, user):
senderLimit = 0,
helpNoargs = True)
def change_pass_command(sender, command, label, args):
if sender.getName() in logging_in:
return "&cYou are not logged in"
if not len(args) == 2:
return "&cInvalid arguments"
password = args[0]
@@ -85,6 +86,8 @@ def register_command(sender, command, label, args):
amax = 0,
helpNoargs = False)
def rmpass_command(sender, command, label, args):
if sender.getName() in logging_in:
return "&cYou are not logged in"
if not is_registered(uid(sender)):
return "&cYou are not registered!"
if not sender.getName() in logging_in:
@@ -98,13 +101,15 @@ def rmpass_command(sender, command, label, args):
description = "Removes password of <user> and sends them a notification",
helpNoargs = True)
def rmotherpass_command(sender, command, label, args):
if sender.getName() in logging_in:
return "&cYou are not logged in"
if not sender.hasPermission(admin_perm):
noperm(sender)
return
user = server.getOfflinePlayer(args[0])
if is_registered(uid(user)):
delete_pass(uid(user))
runas(server.getConsoleSender(), colorify("mail send %s &cYour password was reset by a staff member. Use &6/register&c to set a new one." % sender.getName()))
runas(server.getConsoleSender(), colorify("mail send %s &cYour password was reset by a staff member. Use &6/register&c to set a new one." % user.getName()))
return "&aPassword of %s reset successfully" % user.getName()
return "&cThat player could not be found (or is not registered)"
@@ -170,24 +175,26 @@ def on_join(event):
def on_quit(event):
if event.getPlayer().getName() in logging_in:
del logging_in[event.getPlayer().getName()]
"""
##Threading start
class kick_class(Runnable):
def __init__(self, player):
self.player = player
def run(self):
if player.isOnline():
self.player.kickPlayer(colorify("&aLogin timed out"))
def kick_thread():
while True:
time.sleep(1)
now = time.time()
for name, jointime in logging_in.iteritems():
if now - jointime > wait_time:
address = server.getPlayer(name).getAddress().toString()
address = list(address)
ip = ""
for char in address:
if not char == ":":
if not char == "/":
ip += char
else:
break
subprocess.call("tcpkill host %s" % ip, shell = True)
player = server.getPlayer(name)
kick = kick_class(player)
server.getScheduler().runTask(server.getPluginManager().getPlugin("RedstonerUtils"), kick)
if name in logging_in:
del logging_in[name]
break
@@ -198,7 +205,6 @@ thread = threading.Thread(target = kick_thread)
thread.daemon = True
thread.start()
##Threading end
"""
for blocked_event in blocked_events:
@hook.event(blocked_event, "high")