mirror of
https://github.com/islehorse/HISP.git
synced 2025-04-07 21:55:42 +12:00
Add %KICK
This commit is contained in:
parent
74b948fe61
commit
b8376e9451
9 changed files with 45 additions and 21 deletions
|
@ -97,6 +97,7 @@
|
||||||
},
|
},
|
||||||
"disconnect":{
|
"disconnect":{
|
||||||
"banned":"Your account has been BANNED. You will no longer be able to login",
|
"banned":"Your account has been BANNED. You will no longer be able to login",
|
||||||
|
"kicked":"You have been KICKED by a Moderator. No reason was provided.",
|
||||||
"dupe_login":"Duplicate Login. Disconnecting Previous.",
|
"dupe_login":"Duplicate Login. Disconnecting Previous.",
|
||||||
"no_playtime":"You have run out of Time for this session. As an unsubscriber you gain one minute of playtime every 8 minutes. Please come back later! ",
|
"no_playtime":"You have run out of Time for this session. As an unsubscriber you gain one minute of playtime every 8 minutes. Please come back later! ",
|
||||||
"client_timeout":{
|
"client_timeout":{
|
||||||
|
|
|
@ -60,6 +60,8 @@ namespace HISP.Game.Chat
|
||||||
return Command.Give(message, args, user);
|
return Command.Give(message, args, user);
|
||||||
if (message.StartsWith("%GOTO"))
|
if (message.StartsWith("%GOTO"))
|
||||||
return Command.Goto(message, args, user);
|
return Command.Goto(message, args, user);
|
||||||
|
if (message.StartsWith("%KICK"))
|
||||||
|
return Command.Kick(message, args, user);
|
||||||
if (message.StartsWith("%NOCLIP"))
|
if (message.StartsWith("%NOCLIP"))
|
||||||
return Command.NoClip(message, args, user);
|
return Command.NoClip(message, args, user);
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -104,7 +104,36 @@ namespace HISP.Game.Chat
|
||||||
{
|
{
|
||||||
if (!user.Administrator)
|
if (!user.Administrator)
|
||||||
return false;
|
return false;
|
||||||
user.NoClip = !user.NoClip;
|
|
||||||
|
|
||||||
|
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message.Substring(1)), PacketBuilder.CHAT_BOTTOM_LEFT);
|
||||||
|
user.LoggedinClient.SendPacket(chatPacket);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool Kick(string message, string[] args, User user)
|
||||||
|
{
|
||||||
|
if (!user.Administrator || !user.Moderator)
|
||||||
|
return false;
|
||||||
|
if (args.Length <= 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
User toKick = GameServer.GetUserByName(args[0]);
|
||||||
|
|
||||||
|
if (args.Length >= 2)
|
||||||
|
{
|
||||||
|
string reason = string.Join(" ", args, 1, args.Length - 1);
|
||||||
|
toKick.LoggedinClient.Kick(reason);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
toKick.LoggedinClient.Kick(Messages.KickReasonKicked);
|
||||||
|
}
|
||||||
|
catch (KeyNotFoundException)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message.Substring(1)), PacketBuilder.CHAT_BOTTOM_LEFT);
|
byte[] chatPacket = PacketBuilder.CreateChat(Messages.FormatAdminCommandCompleteMessage(message.Substring(1)), PacketBuilder.CHAT_BOTTOM_LEFT);
|
||||||
user.LoggedinClient.SendPacket(chatPacket);
|
user.LoggedinClient.SendPacket(chatPacket);
|
||||||
|
@ -119,7 +148,7 @@ namespace HISP.Game.Chat
|
||||||
return false;
|
return false;
|
||||||
if(args[0] == "PLAYER")
|
if(args[0] == "PLAYER")
|
||||||
{
|
{
|
||||||
if(args.Length <= 1)
|
if(args.Length <= 2)
|
||||||
return false;
|
return false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -477,6 +477,7 @@ namespace HISP.Game
|
||||||
|
|
||||||
// Disconnect Messages
|
// Disconnect Messages
|
||||||
public static string KickReasonBanned;
|
public static string KickReasonBanned;
|
||||||
|
public static string KickReasonKicked;
|
||||||
public static string KickReasonDuplicateLogin;
|
public static string KickReasonDuplicateLogin;
|
||||||
public static string KickReasonIdleFormat;
|
public static string KickReasonIdleFormat;
|
||||||
public static string KickReasonNoTime;
|
public static string KickReasonNoTime;
|
||||||
|
|
|
@ -35,11 +35,6 @@ enable_word_filter=true
|
||||||
# (NOTE: This feature is also used to filter some less-'bad' words disabling it will allow users to say them!)
|
# (NOTE: This feature is also used to filter some less-'bad' words disabling it will allow users to say them!)
|
||||||
enable_corrections=true
|
enable_corrections=true
|
||||||
|
|
||||||
# Custom Banner Settings
|
|
||||||
# This will replace the "Connected to server!" message
|
|
||||||
enable_custom_banner=false
|
|
||||||
custom_banner=HISP Alpha 0.1
|
|
||||||
|
|
||||||
# Wether or not to consider all users "Subscribers"
|
# Wether or not to consider all users "Subscribers"
|
||||||
all_users_subscribed=false
|
all_users_subscribed=false
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,11 @@ namespace HISP.Server
|
||||||
public static string MapFile;
|
public static string MapFile;
|
||||||
public static string GameDataFile;
|
public static string GameDataFile;
|
||||||
public static string CrossDomainPolicyFile;
|
public static string CrossDomainPolicyFile;
|
||||||
public static string BannerText;
|
|
||||||
|
|
||||||
public static bool Debug;
|
public static bool Debug;
|
||||||
public static bool AllUsersSubbed;
|
public static bool AllUsersSubbed;
|
||||||
public static bool BadWords;
|
public static bool BadWords;
|
||||||
public static bool DoCorrections;
|
public static bool DoCorrections;
|
||||||
public static bool CustomBanner;
|
|
||||||
|
|
||||||
public const int MAX_STACK = 40;
|
public const int MAX_STACK = 40;
|
||||||
|
|
||||||
|
@ -92,12 +90,6 @@ namespace HISP.Server
|
||||||
case "gamedata":
|
case "gamedata":
|
||||||
GameDataFile = data;
|
GameDataFile = data;
|
||||||
break;
|
break;
|
||||||
case "enable_custom_banner":
|
|
||||||
CustomBanner = data == "true";
|
|
||||||
break;
|
|
||||||
case "custom_banner":
|
|
||||||
BannerText = data;
|
|
||||||
break;
|
|
||||||
case "crossdomain":
|
case "crossdomain":
|
||||||
CrossDomainPolicyFile = data;
|
CrossDomainPolicyFile = data;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -333,10 +333,6 @@ namespace HISP.Server
|
||||||
});
|
});
|
||||||
recvPackets.Start();
|
recvPackets.Start();
|
||||||
|
|
||||||
if(ConfigReader.CustomBanner)
|
|
||||||
{
|
|
||||||
byte[] loginFailedPacket = PacketBuilder.
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -989,6 +989,7 @@ namespace HISP.Server
|
||||||
|
|
||||||
// Disconnect Reasons
|
// Disconnect Reasons
|
||||||
|
|
||||||
|
Messages.KickReasonKicked = gameData.messages.disconnect.kicked;
|
||||||
Messages.KickReasonBanned = gameData.messages.disconnect.banned;
|
Messages.KickReasonBanned = gameData.messages.disconnect.banned;
|
||||||
Messages.KickReasonIdleFormat = gameData.messages.disconnect.client_timeout.kick_message;
|
Messages.KickReasonIdleFormat = gameData.messages.disconnect.client_timeout.kick_message;
|
||||||
Messages.KickReasonNoTime = gameData.messages.disconnect.no_playtime;
|
Messages.KickReasonNoTime = gameData.messages.disconnect.no_playtime;
|
||||||
|
|
|
@ -134,6 +134,7 @@ namespace HISP.Server
|
||||||
public const byte ITEM_SHOVEL = 0x5A;
|
public const byte ITEM_SHOVEL = 0x5A;
|
||||||
|
|
||||||
public const byte LOGIN_INVALID_USER_PASS = 0x15;
|
public const byte LOGIN_INVALID_USER_PASS = 0x15;
|
||||||
|
public const byte LOGIN_CUSTOM_MESSAGE = 0x16;
|
||||||
public const byte LOGIN_SUCCESS = 0x14;
|
public const byte LOGIN_SUCCESS = 0x14;
|
||||||
|
|
||||||
public const byte DIRECTION_UP = 0;
|
public const byte DIRECTION_UP = 0;
|
||||||
|
@ -256,10 +257,16 @@ namespace HISP.Server
|
||||||
{
|
{
|
||||||
MemoryStream ms = new MemoryStream();
|
MemoryStream ms = new MemoryStream();
|
||||||
ms.WriteByte(PACKET_LOGIN);
|
ms.WriteByte(PACKET_LOGIN);
|
||||||
if (Success)
|
if (message != "")
|
||||||
|
ms.WriteByte(LOGIN_CUSTOM_MESSAGE);
|
||||||
|
else if (Success)
|
||||||
ms.WriteByte(LOGIN_SUCCESS);
|
ms.WriteByte(LOGIN_SUCCESS);
|
||||||
else
|
else
|
||||||
ms.WriteByte(LOGIN_INVALID_USER_PASS);
|
ms.WriteByte(LOGIN_INVALID_USER_PASS);
|
||||||
|
|
||||||
|
byte[] loginFailMessage = Encoding.UTF8.GetBytes(message);
|
||||||
|
ms.Write(loginFailMessage, 0x00, loginFailMessage.Length);
|
||||||
|
|
||||||
ms.WriteByte(PACKET_TERMINATOR);
|
ms.WriteByte(PACKET_TERMINATOR);
|
||||||
|
|
||||||
ms.Seek(0x00, SeekOrigin.Begin);
|
ms.Seek(0x00, SeekOrigin.Begin);
|
||||||
|
|
Loading…
Add table
Reference in a new issue