void UnregisterEvents() { OnPlayerConnectEvent.Unregister(HandlePlayerConnect); OnPlayerDisconnectEvent.Unregister(HandlePlayerDisconnect); OnPlayerActionEvent.Unregister(HandlePlayerAction); UnhookEvents(); }
static bool GotoLevel(Player p, Level lvl) { if (p.level == lvl) { Player.Message(p, "You are already in {0}%S.", lvl.ColoredName); return(false); } if (!lvl.CanJoin(p)) { return(false); } p.Loading = true; Entities.DespawnEntities(p); Level oldLevel = p.level; p.level = lvl; p.SendMap(oldLevel); Position pos = lvl.SpawnPos; byte yaw = lvl.rotx, pitch = lvl.roty; OnPlayerSpawningEvent.Call(p, ref pos, ref yaw, ref pitch, false); Entities.SpawnEntities(p, pos, new Orientation(yaw, pitch)); CheckGamesJoin(p, oldLevel); if (p.level.ShouldShowJoinMessage(oldLevel)) { string msg = p.level.IsMuseum ? " %Swent to the " : " %Swent to "; Chat.MessageGlobal(p, p.ColoredName + msg + lvl.ColoredName, false, true); OnPlayerActionEvent.Call(p, PlayerAction.JoinWorld, lvl.name); } return(true); }
protected override void OnStart() { base.OnStart(); OnPlayerConnectEvent.Register(HandlePlayerConnect, Priority.Low); OnPlayerDisconnectEvent.Register(HandlePlayerDisconnect, Priority.Low); OnPlayerActionEvent.Register(HandlePlayerAction, Priority.Low); }
void RegisterEvents() { OnPlayerConnectEvent.Register(HandlePlayerConnect, Priority.Low); OnPlayerDisconnectEvent.Register(HandlePlayerDisconnect, Priority.Low); OnPlayerActionEvent.Register(HandlePlayerAction, Priority.Low); HookEvents(); }
/// <summary> Hooks IRC events so they are handled. </summary> public void Hook() { if (hookedEvents) { return; } hookedEvents = true; OnPlayerActionEvent.Register(HandlePlayerAction, Priority.Low); OnShuttingDownEvent.Register(HandleShutdown, Priority.Low); OnGroupLoadEvent.Register(HandleGroupLoad, Priority.Low); OnChatEvent.Register(HandleChat, Priority.Low); OnChatSysEvent.Register(HandleChatSys, Priority.Low); OnChatFromEvent.Register(HandleChatFrom, Priority.Low); // Regster events for incoming bot.connection.Listener.OnNick += Listener_OnNick; bot.connection.Listener.OnRegistered += Listener_OnRegistered; bot.connection.Listener.OnAction += Listener_OnAction; bot.connection.Listener.OnPublic += Listener_OnPublic; bot.connection.Listener.OnPrivate += Listener_OnPrivate; bot.connection.Listener.OnError += Listener_OnError; bot.connection.Listener.OnQuit += Listener_OnQuit; bot.connection.Listener.OnJoin += Listener_OnJoin; bot.connection.Listener.OnPart += Listener_OnPart; bot.connection.Listener.OnDisconnected += Listener_OnDisconnected; bot.connection.Listener.OnChannelModeChange += Listener_OnChannelModeChange; bot.connection.Listener.OnNames += Listener_OnNames; bot.connection.Listener.OnKick += Listener_OnKick; bot.connection.Listener.OnKill += Listener_OnKill; bot.connection.Listener.OnPrivateNotice += Listener_OnPrivateNotice; }
/// <summary> Unhooks IRC events so they are no longer handled. </summary> public void Unhook() { if (!hookedEvents) { return; } hookedEvents = false; userMap.Clear(); OnPlayerActionEvent.Unregister(HandlePlayerAction); OnShuttingDownEvent.Unregister(HandleShutdown); OnGroupLoadEvent.Unregister(HandleGroupLoad); OnChatEvent.Unregister(HandleChat); OnChatSysEvent.Unregister(HandleChatSys); OnChatFromEvent.Unregister(HandleChatFrom); // Regster events for incoming bot.connection.Listener.OnNick -= Listener_OnNick; bot.connection.Listener.OnRegistered -= Listener_OnRegistered; bot.connection.Listener.OnAction -= Listener_OnAction; bot.connection.Listener.OnPublic -= Listener_OnPublic; bot.connection.Listener.OnPrivate -= Listener_OnPrivate; bot.connection.Listener.OnError -= Listener_OnError; bot.connection.Listener.OnQuit -= Listener_OnQuit; bot.connection.Listener.OnJoin -= Listener_OnJoin; bot.connection.Listener.OnPart -= Listener_OnPart; bot.connection.Listener.OnDisconnected -= Listener_OnDisconnected; bot.connection.Listener.OnChannelModeChange -= Listener_OnChannelModeChange; bot.connection.Listener.OnNames -= Listener_OnNames; bot.connection.Listener.OnKick -= Listener_OnKick; bot.connection.Listener.OnKill -= Listener_OnKill; bot.connection.Listener.OnPrivateNotice -= Listener_OnPrivateNotice; }
internal static void ToggleAfk(Player p, string message, bool isAuto = false) { if (p.joker) { message = ""; } p.AutoAfk = false; p.IsAfk = !p.IsAfk; p.afkMessage = p.IsAfk ? message : null; TabList.Update(p, true); var oldLastAction = p.LastAction; p.LastAction = DateTime.UtcNow; bool cantSend = p.muted || (Server.chatmod && !p.voice); if (p.IsAfk) { if (cantSend) { p.Message("You are now marked as being AFK."); } else { if (message == null || message.Trim() == "") { ShowMessage(p, "-λNICK%S- is AFK"); } else { if (isAuto) { ShowMessage(p, "-λNICK%S- is AFK " + message); } else { ShowMessage(p, "-λNICK%S- is AFK: " + message); } } p.CheckForMessageSpam(); } p.AFKCooldown = DateTime.UtcNow.AddSeconds(2); OnPlayerActionEvent.Call(p, PlayerAction.AFK, null, cantSend); } else { if (cantSend) { p.Message("You are no longer marked as being AFK."); } else { TimeSpan idleTime = DateTime.UtcNow - oldLastAction; ShowMessage(p, string.Format("-λNICK%S- is no longer AFK ({0})", idleTime.Shorten())); p.CheckForMessageSpam(); } OnPlayerActionEvent.Call(p, PlayerAction.UnAFK, null, cantSend); } }
public override void Use(Player p, string message, CommandData data) { if (p.Game.Referee) { Chat.MessageFrom(p, "λNICK %Sis no longer a referee"); OnPlayerActionEvent.Call(p, PlayerAction.UnReferee); p.Game.Referee = false; } else { Chat.MessageFrom(p, "λNICK %Sis now a referee"); OnPlayerActionEvent.Call(p, PlayerAction.Referee); p.Game.Referee = true; } p.SetPrefix(); if (p.Supports(CpeExt.InstantMOTD)) { p.SendMapMotd(); } else if (p.Supports(CpeExt.HackControl)) { string motd = p.GetMotd(); if (p.Game.Referee) { motd += " +hax"; } p.Send(Hacks.MakeHackControl(p, motd)); } }
public override void Unload(bool shutdown) { OnPlayerConnectEvent.Unregister(HandleConnect); OnPlayerDisconnectEvent.Unregister(HandleDisconnect); OnPlayerChatEvent.Unregister(HandleChat); OnPlayerActionEvent.Unregister(HandlePlayerAction); OnModActionEvent.Unregister(HandleModerationAction); }
public override void Load(bool startup) { OnPlayerConnectEvent.Register(HandleConnect, Priority.Low); OnPlayerDisconnectEvent.Register(HandleDisconnect, Priority.Low); OnPlayerChatEvent.Register(HandleChat, Priority.Low); OnPlayerActionEvent.Register(HandlePlayerAction, Priority.Low); OnModActionEvent.Register(HandleModerationAction, Priority.Low); }
protected virtual void UnhookEventHandlers() { OnLevelUnloadEvent.Unregister(HandleLevelUnload); OnSendingHeartbeatEvent.Unregister(HandleSendingHeartbeat); OnSQLSaveEvent.Unregister(SaveStats); OnPlayerActionEvent.Unregister(HandlePlayerAction); OnPlayerDisconnectEvent.Unregister(HandlePlayerDisconnect); }
protected virtual void HookEventHandlers() { OnLevelUnloadEvent.Register(HandleLevelUnload, Priority.High); OnSendingHeartbeatEvent.Register(HandleSendingHeartbeat, Priority.High); OnSQLSaveEvent.Register(SaveStats, Priority.High); OnPlayerActionEvent.Register(HandlePlayerAction, Priority.High); OnPlayerDisconnectEvent.Register(HandlePlayerDisconnect, Priority.High); }
public static void InitHandlers() { OnPlayerConnectEvent.Register(OnConnect, Priority.High); OnPlayerDisconnectEvent.Register(OnLeave, Priority.High); OnPlayerMoveEvent.Register(OnMovement, Priority.High); OnPlayerClickEvent.Register(OnClick, Priority.High); OnPlayerChatEvent.Register(OnChat, Priority.High); OnTabListEntryAddedEvent.Register(HUD.GetTabName, Priority.High); OnPlayerActionEvent.Register(OnAFK, Priority.Normal); }
public override void Use(Player p, string message) { if (message.Length == 0) { Help(p); return; } bool stealth = false; if (message[0] == '#') { message = message.Remove(0, 1).Trim(); stealth = true; Logger.Log(LogType.UserActivity, "Stealth joker attempted"); } Player who = PlayerInfo.FindMatches(p, message); if (who == null) { return; } if (p != null && who.Rank > p.Rank) { MessageTooHighRank(p, "joker", true); return; } if (!who.joker) { if (stealth) { Chat.MessageOps(who.ColoredName + " %Sis now STEALTH jokered."); } else { Chat.MessageGlobal(who, who.ColoredName + " %Sis now a &aJ&bo&ck&5e&9r%S.", false); } OnPlayerActionEvent.Call(p, PlayerAction.Joker, null, stealth); } else { if (stealth) { Chat.MessageOps(who.ColoredName + " %Sis now STEALTH unjokered."); } else { Chat.MessageGlobal(who, who.ColoredName + " %Sis no longer a &aJ&bo&ck&5e&9r%S.", false); } OnPlayerActionEvent.Call(p, PlayerAction.Unjoker, null, stealth); } who.joker = !who.joker; }
public override void Unload(bool shutdown) { OnEntitySpawnedEvent.Unregister(HandleEntitySpawned); OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded); OnMoneyChangedEvent.Unregister(HandleMoneyChanged); OnPlayerConnectEvent.Unregister(HandlePlayerConnect); OnPlayerDisconnectEvent.Unregister(HandlePlayerDisconnect); OnPlayerMoveEvent.Unregister(HandlePlayerMove); OnPlayerActionEvent.Unregister(HandlePlayerAction); OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning); OnBlockChangeEvent.Unregister(HandleBlockChange); OnLevelUnloadEvent.Unregister(HandleLevelUnload); }
public override void Load(bool startup) { OnEntitySpawnedEvent.Register(HandleEntitySpawned, Priority.High); OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High); OnMoneyChangedEvent.Register(HandleMoneyChanged, Priority.High); OnPlayerConnectEvent.Register(HandlePlayerConnect, Priority.High); OnPlayerDisconnectEvent.Register(HandlePlayerDisconnect, Priority.High); OnPlayerMoveEvent.Register(HandlePlayerMove, Priority.High); OnPlayerActionEvent.Register(HandlePlayerAction, Priority.High); OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High); OnBlockChangeEvent.Register(HandleBlockChange, Priority.High); OnLevelUnloadEvent.Register(HandleLevelUnload, Priority.High); }
protected override void OnStop() { socket = null; if (api != null) { api.StopAsync(); api = null; } base.OnStop(); OnPlayerConnectEvent.Unregister(HandlePlayerConnect); OnPlayerDisconnectEvent.Unregister(HandlePlayerDisconnect); OnPlayerActionEvent.Unregister(HandlePlayerAction); }
public override void Use(Player p, string message) { if (p.Game.Referee) { Chat.MessageGlobal(p, p.ColoredName + " %Sis no longer a referee", false); OnPlayerActionEvent.Call(p, PlayerAction.UnReferee); p.Game.Referee = false; } else { Chat.MessageGlobal(p, p.ColoredName + " %Sis now a referee", false); OnPlayerActionEvent.Call(p, PlayerAction.Referee); p.Game.Referee = true; } }
public override void Use(Player p, string message, CommandData data) { if (message.Length == 0) { p.Message("You"); return; } if (p.joker) { p.Message("Cannot use /me while jokered."); return; } string msg = p.color + "*" + Colors.Strip(p.DisplayName) + " " + message; if (TryMessage(p, msg)) { OnPlayerActionEvent.Call(p, PlayerAction.Me, message); } }
internal static void ToggleAfk(Player p, string message) { if (p.joker) { message = ""; } p.AutoAfk = false; p.IsAfk = !p.IsAfk; p.afkMessage = p.IsAfk ? message : null; TabList.Update(p, true); p.LastAction = DateTime.UtcNow; bool cantSend = p.muted || (Server.chatmod && !p.voice); if (p.IsAfk) { if (cantSend) { Player.Message(p, "You are now marked as being AFK."); } else { ShowMessage(p, "-" + p.ColoredName + "%S- is AFK " + message); p.CheckForMessageSpam(); } p.AFKCooldown = DateTime.UtcNow.AddSeconds(2); OnPlayerActionEvent.Call(p, PlayerAction.AFK, message); } else { if (cantSend) { Player.Message(p, "You are no longer marked as being AFK."); } else { ShowMessage(p, "-" + p.ColoredName + "%S- is no longer AFK"); p.CheckForMessageSpam(); } OnPlayerActionEvent.Call(p, PlayerAction.UnAFK, message); } }
internal static void ToggleAfk(Player p, string message) { if (p.joker) { message = ""; } p.AutoAfk = false; p.IsAfk = !p.IsAfk; p.afkMessage = p.IsAfk ? message : null; TabList.Update(p, true); p.LastAction = DateTime.UtcNow; bool cantSend = !p.CanSpeak(); if (p.IsAfk) { if (cantSend) { p.Message("You are now marked as being AFK."); } else { ShowMessage(p, "-λNICK%S- is AFK " + message); p.CheckForMessageSpam(); } p.AFKCooldown = DateTime.UtcNow.AddSeconds(2); OnPlayerActionEvent.Call(p, PlayerAction.AFK, null, cantSend); } else { if (cantSend) { p.Message("You are no longer marked as being AFK."); } else { ShowMessage(p, "-λNICK%S- is no longer AFK"); p.CheckForMessageSpam(); } OnPlayerActionEvent.Call(p, PlayerAction.UnAFK, null, cantSend); } }
void HandleEnter(Player p) { if (p == null) { Player.Message(p, "Console cannot enter the review queue."); return; } if (DateTime.UtcNow < p.NextReviewTime) { Player.Message(p, "You have to wait " + ServerConfig.ReviewCooldown + " seconds everytime you use this command"); return; } foreach (string name in Server.reviewlist) { if (!name.CaselessEq(p.name)) { continue; } Player.Message(p, "You already entered the review queue!"); return; } bool opsOn = false; Player[] players = PlayerInfo.Online.Items; LevelPermission nextPerm = CommandExtraPerms.MinPerm(this.name, 2); foreach (Player pl in players) { if (pl.Rank >= nextPerm && Entities.CanSee(p, pl)) { opsOn = true; break; } } Server.reviewlist.Add(p.name); int pos = Server.reviewlist.IndexOf(p.name); if (pos > 1) { Player.Message(p, "You entered the &creview %Squeue. You have &c" + pos + " %Speople in front of you in the queue"); } if (pos == 1) { Player.Message(p, "You entered the &creview %Squeue. There is &c1 %Sperson in front of you in the queue"); } if (pos == 0) { Player.Message(p, "You entered the &creview %Squeue. You are &cfirst %Sin line!"); } string msg = opsOn ? "The Online staff have been notified. Someone should be with you shortly." : "There are currently no staff online. Staff will be notified when they join the server."; Player.Message(p, msg); string start = pos > 0 ? "There are now &c" + (pos + 1) + " %Speople" : "There is now &c1 %Sperson"; Chat.MessageWhere(p.ColoredName + " %Sentered the review queue", pl => pl.Rank >= nextPerm); Chat.MessageWhere(start + " waiting for a &creview!", pl => pl.Rank >= nextPerm); p.NextReviewTime = DateTime.UtcNow.AddSeconds(ServerConfig.ReviewCooldown); OnPlayerActionEvent.Call(p, PlayerAction.Review, null, true); }
public override void Use(Player p, string message, CommandData data) { if (message.Length > 0 && p.possess.Length > 0) { p.Message("Stop your current possession first."); return; } bool silent = false; if (message.CaselessEq("silent")) { if (!CheckExtraPerm(p, data, 1)) { return; } silent = true; } Command adminchat = Command.Find("AdminChat"); Command opchat = Command.Find("OpChat"); Entities.GlobalDespawn(p, false); p.hidden = !p.hidden; if (p.hidden) { p.hideRank = data.Rank; AnnounceOps(p, "To Ops -λNICK&S- is now &finvisible"); if (!silent) { string leaveMsg = "&c- λFULL &S" + PlayerDB.GetLogoutMessage(p); Chat.MessageFrom(ChatScope.All, p, leaveMsg, null, null, true); } if (!p.opchat) { opchat.Use(p, "", data); } Server.hidden.Add(p.name); OnPlayerActionEvent.Call(p, PlayerAction.Hide); } else { AnnounceOps(p, "To Ops -λNICK&S- is now &fvisible"); p.hideRank = LevelPermission.Banned; if (!silent) { string joinMsg = "&a+ λFULL &S" + PlayerDB.GetLoginMessage(p); Chat.MessageFrom(ChatScope.All, p, joinMsg, null, null, true); } if (p.opchat) { opchat.Use(p, "", data); } if (p.adminchat) { adminchat.Use(p, "", data); } Server.hidden.Remove(p.name); OnPlayerActionEvent.Call(p, PlayerAction.Unhide); } Entities.GlobalSpawn(p, false); TabList.Add(p, p, Entities.SelfID); Server.hidden.Save(false); }