From a85194d7be08e5fd35a08793d4b1991446e8a177 Mon Sep 17 00:00:00 2001 From: PanFritz Date: Tue, 24 Nov 2015 00:33:56 +0100 Subject: Added cancelled event property, added player loading --- wrapper_event.py | 8 ++++++++ wrapper_player.py | 26 +++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/wrapper_event.py b/wrapper_event.py index 083bf33..c203cd3 100644 --- a/wrapper_event.py +++ b/wrapper_event.py @@ -10,6 +10,14 @@ class py_event: except: warn("Player doesn't exist") + @property + def cancelled(self): + return self.event.isCancelled() + + @cancelled.setter + def cancelled(self, value): + self.event.setCancelled(value) + def event_handler(event_name = None, priority = "normal"): def decorator(wrapped): @hook.event(event_name, priority) diff --git a/wrapper_player.py b/wrapper_player.py index 1912bf1..4ca302a 100644 --- a/wrapper_player.py +++ b/wrapper_player.py @@ -9,9 +9,9 @@ from com.ziclix.python.sql import zxJDBC class py_player: def __init__(self,player): self.player = player + self.logging_in = True + self.login_time = time.time() - self.logging_in = False - self.nickname = self.name self.registered = False self.password = "None" @@ -24,6 +24,9 @@ class py_player: def kick(self, kick_message = "You have been kicked from the server!"): self.player.KickPlayer(kick_message) + def msg(self, message): + self.player.sendMessage(message) + @property def name(self): return self.player.getName() @@ -81,14 +84,31 @@ def fetch_player(player): for prop in properties: prop = props[properties.index(prop)] + else: + player.kick("Something went wrong while loading your player data, please contact an admin") + return + player.logging_in = False + player.msg("You have succesfully logged into redstoner!") + + +blocked_events = ["block.BlockBreakEvent", "block.BlockPlaceEvent", "player.PlayerMoveEvent", + "player.AsyncPlayerChatEvent","player.PlayerTeleportEvent", + "player.PlayerCommandPreprocessEvent", "player.PlayerInteractEvent"] + +for event in blocked_events: + @hook.event(event,"highest") + def on_blocked_event(event): + player = py_players[event.getPlayer()] + if player.logging_in: + event.setCancelled(True) - @hook.event("player.PlayerJoinEvent","lowest") def on_join(event): player = py_player(event.getPlayer()) py_players.append(player) + player.msg("Your input will be blocked for a short while") fetch_player(player) -- cgit v1.2.3