summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPanFritz <redstonenoobpan@gmail.com>2015-11-24 00:33:56 +0100
committerPanFritz <redstonenoobpan@gmail.com>2015-11-24 00:33:56 +0100
commita85194d7be08e5fd35a08793d4b1991446e8a177 (patch)
tree9e44ec381dd65bc2e11e06b809d06c97cb644ce5
parent760dc48968645dfb226ec1655dcf94a580185cf0 (diff)
Added cancelled event property, added player loading
-rw-r--r--wrapper_event.py8
-rw-r--r--wrapper_player.py26
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)