summaryrefslogtreecommitdiff
path: root/loginsecurity.py
diff options
context:
space:
mode:
authorNEMESIS13cz <seke94@seznam.cz>2015-07-23 01:20:07 +0200
committerNEMESIS13cz <seke94@seznam.cz>2015-07-23 01:20:07 +0200
commit09e0d761f53e25ad025dbf06b032766f9b94d6e7 (patch)
treebdf29a6d431c0cfd463f5bfb30d3f85e81ad2dfe /loginsecurity.py
parentf64d3074e17c4556b6c71d68617b8e787f37eb01 (diff)
modified: loginsecurity.py
Fixed scheduler and commands
Diffstat (limited to 'loginsecurity.py')
-rw-r--r--loginsecurity.py36
1 files changed, 21 insertions, 15 deletions
diff --git a/loginsecurity.py b/loginsecurity.py
index 57455cc..b35bba5 100644
--- a/loginsecurity.py
+++ b/loginsecurity.py
@@ -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")