mirror of
https://github.com/islehorse/HISP.git
synced 2025-04-21 20:25:51 +12:00
Add muted player functions
This commit is contained in:
parent
61383e8b9f
commit
b15e6996fe
10 changed files with 272 additions and 20 deletions
|
@ -55,8 +55,21 @@ namespace HISP.Server
|
|||
string RiddlesComplete = "CREATE TABLE IF NOT EXISTS RiddlesComplete(playerId INT, riddleId INT, solved TEXT(1028))";
|
||||
string AuctionTable = "CREATE TABLE IF NOT EXISTS Auctions(roomId INT, randomId INT, horseRandomId INT, ownerId INT, timeRemaining INT, highestBid INT, highestBidder INT, Done TEXT(3))";
|
||||
string SolvedRealTimeRiddle = "CREATE TABLE IF NOT EXISTS SolvedRealTimeRiddles(playerId INT, riddleId INT)";
|
||||
string MutedPlayers = "CREATE TABLE IF NOT EXISTS MutedPlayers(playerId INT, mutePlayerId INT)";
|
||||
string DeleteOnlineUsers = "DELETE FROM OnlineUsers";
|
||||
|
||||
try
|
||||
{
|
||||
MySqlCommand sqlCommand = db.CreateCommand();
|
||||
sqlCommand.CommandText = MutedPlayers;
|
||||
sqlCommand.ExecuteNonQuery();
|
||||
sqlCommand.Dispose();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Logger.WarnPrint(e.Message);
|
||||
};
|
||||
|
||||
try
|
||||
{
|
||||
MySqlCommand sqlCommand = db.CreateCommand();
|
||||
|
@ -522,6 +535,53 @@ namespace HISP.Server
|
|||
sqlCommand.Dispose();
|
||||
}
|
||||
}
|
||||
public static int[] GetMutedPlayers(int playerId)
|
||||
{
|
||||
List<int> MutedPlayerIds = new List<int>();
|
||||
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||
{
|
||||
db.Open();
|
||||
MySqlCommand sqlCommand = db.CreateCommand();
|
||||
sqlCommand.CommandText = "SELECT mutePlayerId FROM MutedPlayers WHERE playerId=@playerId";
|
||||
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
||||
sqlCommand.Prepare();
|
||||
MySqlDataReader reader = sqlCommand.ExecuteReader();
|
||||
while (reader.Read())
|
||||
MutedPlayerIds.Add(reader.GetInt32(0));
|
||||
sqlCommand.Dispose();
|
||||
}
|
||||
return MutedPlayerIds.ToArray();
|
||||
}
|
||||
public static void AddMutedPlayer(int playerId, int playerToMute)
|
||||
{
|
||||
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||
{
|
||||
db.Open();
|
||||
MySqlCommand sqlCommand = db.CreateCommand();
|
||||
sqlCommand.CommandText = "INSERT INTO MutedPlayers VALUES(@playerId, @mutedPlayerId)";
|
||||
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
||||
sqlCommand.Parameters.AddWithValue("@mutedPlayerId", playerToMute);
|
||||
sqlCommand.Prepare();
|
||||
sqlCommand.ExecuteNonQuery();
|
||||
sqlCommand.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void DeleteMutedPlayer(int playerId, int playerToMute)
|
||||
{
|
||||
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||
{
|
||||
db.Open();
|
||||
MySqlCommand sqlCommand = db.CreateCommand();
|
||||
sqlCommand.CommandText = "DELETE FROM MutedPlayers WHERE playerId=@playerId AND mutePlayerId=@mutedPlayerId)";
|
||||
sqlCommand.Parameters.AddWithValue("@playerId", playerId);
|
||||
sqlCommand.Parameters.AddWithValue("@mutedPlayerId", playerToMute);
|
||||
sqlCommand.Prepare();
|
||||
sqlCommand.ExecuteNonQuery();
|
||||
sqlCommand.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsRanchOwned(int ranchId)
|
||||
{
|
||||
using (MySqlConnection db = new MySqlConnection(ConnectionString))
|
||||
|
|
|
@ -842,6 +842,21 @@ namespace HISP.Server
|
|||
Messages.AutoSellYouSoldHorseFormat = gameData.messages.meta.auto_sell.you_sold;
|
||||
Messages.AutoSellYouSoldHorseOfflineFormat = gameData.messages.meta.auto_sell.sold_offline;
|
||||
|
||||
// Mute Command
|
||||
Messages.PlayerIgnoringYourPrivateMessagesFormat = gameData.messages.meta.mute_command.player_ignoring_your_pm;
|
||||
Messages.PlayerIgnoringYourBuddyRequests = gameData.messages.meta.mute_command.player_ignoring_your_br;
|
||||
Messages.PlayerIgnoringYourSocials = gameData.messages.meta.mute_command.player_ignoring_your_socials;
|
||||
|
||||
Messages.PlayerIgnoringAllPrivateMessagesFormat = gameData.messages.meta.mute_command.player_ignoring_all_pm;
|
||||
Messages.PlayerIgnoringAllBuddyRequests = gameData.messages.meta.mute_command.player_ignoring_all_br;
|
||||
Messages.PlayerIgnoringAllSocials = gameData.messages.meta.mute_command.player_ignoring_all_socials;
|
||||
|
||||
Messages.CantSendInMutedChannel = gameData.messages.meta.mute_command.cant_send_in_muted_channel;
|
||||
Messages.CantSendBuddyRequestWhileMuted = gameData.messages.meta.mute_command.cant_send_br_muted;
|
||||
Messages.CantSendPrivateMessageWhileMuted = gameData.messages.meta.mute_command.cant_send_pm_muted;
|
||||
|
||||
Messages.CantSendPrivateMessagePlayerMutedFormat = gameData.messages.meta.mute_command.cant_send_pm_player_muted;
|
||||
|
||||
// Warp Command
|
||||
|
||||
Messages.SuccessfullyWarpedToPlayer = gameData.messages.commands.warp.player;
|
||||
|
|
|
@ -518,8 +518,22 @@ namespace HISP.Server
|
|||
int socialId = Convert.ToInt32(packet[2] - (byte)0x21);
|
||||
SocialType.Social social = SocialType.GetSocial(socialId);
|
||||
|
||||
if(sender.LoggedinUser.SocializingWith != null)
|
||||
if (sender.LoggedinUser.SocializingWith != null)
|
||||
{
|
||||
|
||||
if (!sender.LoggedinUser.SocializingWith.MuteAll && !sender.LoggedinUser.SocializingWith.MuteSocials)
|
||||
{
|
||||
byte[] cantSocialize = PacketBuilder.CreateChat(Messages.PlayerIgnoringAllSocials, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
sender.SendPacket(cantSocialize);
|
||||
break;
|
||||
}
|
||||
else if (sender.LoggedinUser.SocializingWith.MutePlayer.IsUserMuted(sender.LoggedinUser))
|
||||
{
|
||||
byte[] cantSocialize = PacketBuilder.CreateChat(Messages.PlayerIgnoringYourSocials, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
sender.SendPacket(cantSocialize);
|
||||
break;
|
||||
}
|
||||
|
||||
if(sender.LoggedinUser.SocializingWith.X != sender.LoggedinUser.X && sender.LoggedinUser.SocializingWith.Y != sender.LoggedinUser.Y)
|
||||
{
|
||||
byte[] playerNotNearby = PacketBuilder.CreateChat(Messages.SocialPlayerNoLongerNearby, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
|
@ -553,11 +567,8 @@ namespace HISP.Server
|
|||
{
|
||||
if (social.BaseSocialType.Type != "GROUP")
|
||||
{
|
||||
if (!sender.LoggedinUser.SocializingWith.MuteAll && !sender.LoggedinUser.SocializingWith.MuteSocials)
|
||||
{
|
||||
byte[] msgTarget = PacketBuilder.CreateChat(Messages.FormatSocialMessage(social.ForTarget, sender.LoggedinUser.SocializingWith.Username, sender.LoggedinUser.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
sender.LoggedinUser.SocializingWith.LoggedinClient.SendPacket(msgTarget);
|
||||
}
|
||||
byte[] msgTarget = PacketBuilder.CreateChat(Messages.FormatSocialMessage(social.ForTarget, sender.LoggedinUser.SocializingWith.Username, sender.LoggedinUser.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
sender.LoggedinUser.SocializingWith.LoggedinClient.SendPacket(msgTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2721,7 +2732,7 @@ namespace HISP.Server
|
|||
if(IsUserOnline(horseToSell.Owner))
|
||||
{
|
||||
User seller = GetUserById(horseToSell.Owner);
|
||||
seller.HorseInventory.DeleteHorse(horseToSell, false);
|
||||
sender.LoggedinUser.HorseInventory.DeleteHorse(horseToSell, false);
|
||||
|
||||
byte[] horseBrought = PacketBuilder.CreateChat(Messages.FormatAutoSellSold(horseToSell.Name, horseToSell.AutoSell, sender.LoggedinUser.Username), PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
seller.LoggedinClient.SendPacket(horseBrought);
|
||||
|
@ -5320,6 +5331,22 @@ namespace HISP.Server
|
|||
if (message == "")
|
||||
return;
|
||||
|
||||
// Check if player is muting channel
|
||||
|
||||
if( (sender.LoggedinUser.MuteGlobal && channel == Chat.ChatChannel.All) || (sender.LoggedinUser.MuteAds && channel == Chat.ChatChannel.Ads) || (sender.LoggedinUser.MuteHere && channel == Chat.ChatChannel.Here) && (sender.LoggedinUser.MuteBuddy && channel == Chat.ChatChannel.Buddies) && (sender.LoggedinUser.MuteNear && channel == Chat.ChatChannel.Near) && (sender.LoggedinUser.MuteIsland && channel == Chat.ChatChannel.Isle))
|
||||
{
|
||||
byte[] cantSendMessage = PacketBuilder.CreateChat(Messages.CantSendInMutedChannel, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
sender.SendPacket(cantSendMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
if(sender.LoggedinUser.MutePrivateMessage && channel == Chat.ChatChannel.Dm)
|
||||
{
|
||||
byte[] cantSendDmMessage = PacketBuilder.CreateChat(Messages.CantSendPrivateMessageWhileMuted, PacketBuilder.CHAT_BOTTOM_RIGHT);
|
||||
sender.SendPacket(cantSendDmMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
Object violationReason = Chat.FilterMessage(message);
|
||||
if (violationReason != null)
|
||||
{
|
||||
|
@ -5345,6 +5372,36 @@ namespace HISP.Server
|
|||
|
||||
GameClient[] recipiants = Chat.GetRecipiants(sender.LoggedinUser, channel, nameTo);
|
||||
|
||||
// Muted user checks
|
||||
if(channel == Chat.ChatChannel.Dm)
|
||||
{
|
||||
try
|
||||
{
|
||||
User userTo = GetUserByName(nameTo);
|
||||
if (sender.LoggedinUser.MutePlayer.IsUserMuted(userTo))
|
||||
{
|
||||
byte[] dmWasBlocked = PacketBuilder.CreateChat(Messages.FormatCantSendYourIgnoringPlayer(userTo.Username), PacketBuilder.CHAT_DM_RIGHT);
|
||||
sender.SendPacket(dmWasBlocked);
|
||||
return;
|
||||
}
|
||||
else if (userTo.MutePrivateMessage)
|
||||
{
|
||||
byte[] dmWasBlocked = PacketBuilder.CreateChat(Messages.FormatPlayerIgnoringAllPms(userTo.Username), PacketBuilder.CHAT_DM_RIGHT);
|
||||
sender.SendPacket(dmWasBlocked);
|
||||
return;
|
||||
}
|
||||
else if (userTo.MutePlayer.IsUserMuted(sender.LoggedinUser))
|
||||
{
|
||||
byte[] dmWasBlocked = PacketBuilder.CreateChat(Messages.FormatPlayerIgnoringYourPms(userTo.Username), PacketBuilder.CHAT_DM_RIGHT);
|
||||
sender.SendPacket(dmWasBlocked);
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (KeyNotFoundException)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Finally send chat message.
|
||||
string formattedMessage = Chat.FormatChatForOthers(sender.LoggedinUser, channel, message);
|
||||
string formattedMessageSender = Chat.FormatChatForSender(sender.LoggedinUser, channel, message, nameTo);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue