mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-25 22:30:52 -04:00
Fix /xmute with negative intervals, /clones now shows banned players in a separate colour, use display names for join/leave on IRC, show IRC kicks.
This commit is contained in:
parent
62f985fd32
commit
5b9f2d9bc8
@ -28,9 +28,9 @@ namespace MCGalaxy.Commands {
|
|||||||
public override LevelPermission defaultRank { get { return LevelPermission.Banned; } }
|
public override LevelPermission defaultRank { get { return LevelPermission.Banned; } }
|
||||||
|
|
||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
bool showInfected = p.Game.Aka;
|
|
||||||
p.Game.Aka = !p.Game.Aka;
|
p.Game.Aka = !p.Game.Aka;
|
||||||
Player[] players = PlayerInfo.Online.Items;
|
Player[] players = PlayerInfo.Online.Items;
|
||||||
|
Player.SendMessage(p, "AKA mode is now: " + (p.Game.Aka ? "&aon" : "&coff"));
|
||||||
|
|
||||||
foreach (Player pl in players) {
|
foreach (Player pl in players) {
|
||||||
if (pl.level != p.level || p == pl || !Player.CanSee(p, pl) || pl.Game.Referee) continue;
|
if (pl.level != p.level || p == pl || !Player.CanSee(p, pl) || pl.Game.Referee) continue;
|
||||||
|
@ -68,7 +68,12 @@ namespace MCGalaxy.Commands {
|
|||||||
for (int i = 0; i < alts.Count; i++) {
|
for (int i = 0; i < alts.Count; i++) {
|
||||||
if (alts[i].CaselessEq(value)) return;
|
if (alts[i].CaselessEq(value)) return;
|
||||||
}
|
}
|
||||||
alts.Add(value);
|
|
||||||
|
Group grp = Group.findPerm(LevelPermission.Banned);
|
||||||
|
if (Ban.IsBanned(value))
|
||||||
|
alts.Add(grp.color + value + "%S");
|
||||||
|
else
|
||||||
|
alts.Add(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Help(Player p) {
|
public override void Help(Player p) {
|
||||||
|
@ -49,8 +49,9 @@ namespace MCGalaxy.Commands
|
|||||||
if (messageOps)
|
if (messageOps)
|
||||||
Chat.GlobalMessageOps("To Ops -" + p.color + p.DisplayName + "%S- is now &finvisible%S.");
|
Chat.GlobalMessageOps("To Ops -" + p.color + p.DisplayName + "%S- is now &finvisible%S.");
|
||||||
|
|
||||||
Player.SendChatFrom(p, "&c- " + p.FullName + " %S" + PlayerDB.GetLogoutMessage(p), false);
|
string discMsg = PlayerDB.GetLogoutMessage(p);
|
||||||
Server.IRC.Say(p.DisplayName + " left the game (Disconnected.)");
|
Player.SendChatFrom(p, "&c- " + p.FullName + " %S" + discMsg, false);
|
||||||
|
Server.IRC.Say(p.DisplayName + " left the game (" + discMsg + ")");
|
||||||
if (messageOps && !p.opchat) opchat.Use(p, message);
|
if (messageOps && !p.opchat) opchat.Use(p, message);
|
||||||
} else {
|
} else {
|
||||||
Player.GlobalSpawn(p, p.pos[0], p.pos[1], p.pos[2], p.rot[0], p.rot[1], false);
|
Player.GlobalSpawn(p, p.pos[0], p.pos[1], p.pos[2], p.rot[0], p.rot[1], false);
|
||||||
|
@ -18,60 +18,49 @@
|
|||||||
*/
|
*/
|
||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
namespace MCGalaxy.Commands
|
namespace MCGalaxy.Commands {
|
||||||
{
|
|
||||||
public sealed class CmdXmute : Command
|
public sealed class CmdXmute : Command {
|
||||||
{
|
|
||||||
public override string name { get { return "xmute"; } }
|
public override string name { get { return "xmute"; } }
|
||||||
public override string shortcut { get { return ""; } }
|
public override string shortcut { get { return ""; } }
|
||||||
public override string type { get { return CommandTypes.Moderation; } }
|
public override string type { get { return CommandTypes.Moderation; } }
|
||||||
public override bool museumUsable { get { return false; } }
|
public override bool museumUsable { get { return false; } }
|
||||||
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
|
public override LevelPermission defaultRank { get { return LevelPermission.Operator; } }
|
||||||
public override void Use(Player p, string message)
|
|
||||||
{
|
public override void Use(Player p, string message) {
|
||||||
if (message == "") { Help(p); return; }
|
if (message == "") { Help(p); return; }
|
||||||
if (p == null) {
|
if (p == null) {
|
||||||
Player.SendMessage(p, "This command can only be used in-game. Use /mute [Player] instead."); return;
|
Player.SendMessage(p, "This command can only be used in-game. Use /mute [Player] instead."); return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var split = message.Split(' ');
|
string[] args = message.Split(' ');
|
||||||
Player muter = PlayerInfo.FindOrShowMatches(p, split[0]);
|
Player muter = PlayerInfo.FindOrShowMatches(p, args[0]);
|
||||||
if (muter == null) return;
|
if (muter == null) return;
|
||||||
|
|
||||||
if (p != null && muter.group.Permission > p.group.Permission)
|
if (p != null && muter.group.Permission > p.group.Permission) {
|
||||||
{
|
|
||||||
MessageTooHighRank(p, "xmute", true); return;
|
MessageTooHighRank(p, "xmute", true); return;
|
||||||
}
|
}
|
||||||
if (p == muter)
|
if (p == muter) {
|
||||||
{
|
Player.SendMessage(p, "You cannot use xmute on yourself!"); return;
|
||||||
Player.SendMessage(p, "You cannot use xmute on yourself!");
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
Command.all.Find("mute").Use(p, muter.name);
|
Command.all.Find("mute").Use(p, muter.name);
|
||||||
|
|
||||||
int time = 120;
|
int time = 120;
|
||||||
try
|
if (!int.TryParse(args[1], out time)) {
|
||||||
{
|
Player.SendMessage(p, "Invalid time given."); Help(p); return;
|
||||||
time = Convert.ToInt32(message.Split(' ')[1]);
|
|
||||||
}
|
}
|
||||||
catch/* (Exception ex)*/
|
if (time <= 0) {
|
||||||
{
|
Player.SendMessage(p, "Time must be positive and greater than zero."); return;
|
||||||
Player.SendMessage(p, "Invalid time given.");
|
|
||||||
Help(p);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Player.GlobalMessage(muter.color + muter.DisplayName + Server.DefaultColor + " has been muted for " + time + " seconds");
|
Player.GlobalMessage(muter.color + muter.DisplayName + " %Shas been muted for " + time + " seconds");
|
||||||
Player.SendMessage(muter, "You have been muted for " + time + " seconds");
|
Player.SendMessage(muter, "You have been muted for " + time + " seconds");
|
||||||
|
|
||||||
Thread.Sleep(time * 1000);
|
Thread.Sleep(time * 1000);
|
||||||
|
|
||||||
Command.all.Find("mute").Use(p, muter.name);
|
Command.all.Find("mute").Use(p, muter.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This one controls what happens when you use /help [commandname].
|
public override void Help(Player p) {
|
||||||
public override void Help(Player p)
|
|
||||||
{
|
|
||||||
Player.SendMessage(p, "/xmute <player> <seconds> - Mutes <player> for <seconds> seconds");
|
Player.SendMessage(p, "/xmute <player> <seconds> - Mutes <player> for <seconds> seconds");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -140,14 +140,14 @@ namespace MCGalaxy {
|
|||||||
if (!Server.guestLeaveNotify && p.group.Permission <= LevelPermission.Guest) return;
|
if (!Server.guestLeaveNotify && p.group.Permission <= LevelPermission.Guest) return;
|
||||||
reason = Colors.MinecraftToIrcColors(reason);
|
reason = Colors.MinecraftToIrcColors(reason);
|
||||||
if (!p.hidden)
|
if (!p.hidden)
|
||||||
connection.Sender.PublicMessage(channel, p.name + " left the game (" + reason + ")");
|
connection.Sender.PublicMessage(channel, p.DisplayName + " left the game (" + reason + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player_PlayerConnect(Player p) {
|
void Player_PlayerConnect(Player p) {
|
||||||
if (!Server.irc || !IsConnected()) return;
|
if (!Server.irc || !IsConnected()) return;
|
||||||
if (!Server.guestJoinNotify && p.group.Permission <= LevelPermission.Guest) return;
|
if (!Server.guestJoinNotify && p.group.Permission <= LevelPermission.Guest) return;
|
||||||
if (!p.hidden)
|
if (!p.hidden)
|
||||||
connection.Sender.PublicMessage(channel, p.name + " joined the game");
|
connection.Sender.PublicMessage(channel, p.DisplayName + " joined the game");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Listener_OnQuit(UserInfo user, string reason) {
|
void Listener_OnQuit(UserInfo user, string reason) {
|
||||||
@ -155,7 +155,7 @@ namespace MCGalaxy {
|
|||||||
RemoveNick(user.Nick, chanNicks);
|
RemoveNick(user.Nick, chanNicks);
|
||||||
if (user.Nick == nick) return;
|
if (user.Nick == nick) return;
|
||||||
Server.s.Log(user.Nick + " has left IRC");
|
Server.s.Log(user.Nick + " has left IRC");
|
||||||
Player.GlobalMessage("%I" + user.Nick + Server.DefaultColor + " has left IRC");
|
Player.GlobalMessage("%I[IRC] " + user.Nick + " has left");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Listener_OnError(ReplyCode code, string message) {
|
void Listener_OnError(ReplyCode code, string message) {
|
||||||
@ -394,6 +394,8 @@ namespace MCGalaxy {
|
|||||||
void Listener_OnKick(UserInfo user, string channel, string kickee, string reason) {
|
void Listener_OnKick(UserInfo user, string channel, string kickee, string reason) {
|
||||||
List<string> chanNicks = GetNicks(channel);
|
List<string> chanNicks = GetNicks(channel);
|
||||||
RemoveNick(user.Nick, chanNicks);
|
RemoveNick(user.Nick, chanNicks);
|
||||||
|
Server.s.Log(kickee + " kicked " + user.Nick + " from IRC");
|
||||||
|
Player.GlobalMessage("%I[IRC] " + kickee + " kicked " + user.Nick);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Listener_OnKill(UserInfo user, string nick, string reason) {
|
void Listener_OnKill(UserInfo user, string nick, string reason) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user