forked from SoDOff-Project/sodoff-mmo
Compare commits
2 Commits
a7aae8763e
...
12981bfa61
Author | SHA1 | Date | |
---|---|---|---|
12981bfa61 | |||
bea782504e |
37
src/CommandHandlers/SendMessageBoardHandler.cs
Normal file
37
src/CommandHandlers/SendMessageBoardHandler.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
using System;
|
||||||
|
using sodoffmmo.Attributes;
|
||||||
|
using sodoffmmo.Core;
|
||||||
|
using sodoffmmo.Data;
|
||||||
|
|
||||||
|
namespace sodoffmmo.CommandHandlers;
|
||||||
|
|
||||||
|
[ExtensionCommandHandler("SMB")]
|
||||||
|
class SendMessageBoardHandler : CommandHandler
|
||||||
|
{
|
||||||
|
public override Task Handle(Client client, NetworkObject receivedObject)
|
||||||
|
{
|
||||||
|
NetworkObject args = receivedObject.Get<NetworkObject>("p");
|
||||||
|
|
||||||
|
string toUserId = args.Get<string>("tgt");
|
||||||
|
string content = args.Get<string>("cnt");
|
||||||
|
string level = args.Get<string>("lvl");
|
||||||
|
|
||||||
|
if (toUserId == string.Empty) toUserId = client.PlayerData.Uid; // send to self
|
||||||
|
|
||||||
|
ApiWebService apiWebService = new();
|
||||||
|
|
||||||
|
// first check for any kind of ban
|
||||||
|
var banType = apiWebService.CheckForUserBan(client);
|
||||||
|
|
||||||
|
if (banType != null && banType >= UserBanType.TemporaryOpenChatBan) { client.Send(Utils.ArrNetworkPacket(new string[] { "SMF" }, "SMF")); return Task.CompletedTask; }
|
||||||
|
|
||||||
|
// send message
|
||||||
|
var result = apiWebService.SendMessageBoard(client, toUserId, content, level, "0");
|
||||||
|
|
||||||
|
if (result)
|
||||||
|
client.Send(Utils.ArrNetworkPacket(new string[] { "SMA", "-1", "SUCCESS", "1", DateTime.UtcNow.ToString() }, "SMA"));
|
||||||
|
else client.Send(Utils.ArrNetworkPacket(new string[] { "SMF" }, "SMF"));
|
||||||
|
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
}
|
38
src/CommandHandlers/SendMessageReplyHandler.cs
Normal file
38
src/CommandHandlers/SendMessageReplyHandler.cs
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using sodoffmmo.Attributes;
|
||||||
|
using sodoffmmo.Core;
|
||||||
|
using sodoffmmo.Data;
|
||||||
|
|
||||||
|
namespace sodoffmmo.CommandHandlers;
|
||||||
|
|
||||||
|
[ExtensionCommandHandler("SMR")]
|
||||||
|
class SendMessageReplyHandler : CommandHandler
|
||||||
|
{
|
||||||
|
public override Task Handle(Client client, NetworkObject receivedObject)
|
||||||
|
{
|
||||||
|
NetworkObject args = receivedObject.Get<NetworkObject>("p");
|
||||||
|
|
||||||
|
string toUserId = args.Get<string>("tgt");
|
||||||
|
string content = args.Get<string>("cnt");
|
||||||
|
string level = args.Get<string>("lvl");
|
||||||
|
string msgId = args.Get<string>("rtm");
|
||||||
|
|
||||||
|
if (toUserId == string.Empty) toUserId = client.PlayerData.Uid; // send to self
|
||||||
|
|
||||||
|
ApiWebService apiWebService = new();
|
||||||
|
|
||||||
|
// first check for any kind of ban
|
||||||
|
var banType = apiWebService.CheckForUserBan(client);
|
||||||
|
|
||||||
|
if (banType != null && banType >= UserBanType.TemporaryOpenChatBan) { client.Send(Utils.ArrNetworkPacket(new string[] { "SMF" }, "SMF")); return Task.CompletedTask; }
|
||||||
|
|
||||||
|
// send message
|
||||||
|
var result = apiWebService.SendMessageBoard(client, toUserId, content, level, msgId);
|
||||||
|
|
||||||
|
if (result)
|
||||||
|
client.Send(Utils.ArrNetworkPacket(new string[] { "SMA", "-1", "SUCCESS", "1", DateTime.UtcNow.ToString() }, "SMA"));
|
||||||
|
else client.Send(Utils.ArrNetworkPacket(new string[] { "SMF" }, "SMF"));
|
||||||
|
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
}
|
@ -48,6 +48,32 @@ public class ApiWebService
|
|||||||
} catch (Exception e) { LogError(e.Message); return null; }
|
} catch (Exception e) { LogError(e.Message); return null; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool SendMessageBoard(Client client, string userId, string data, string level, string replyMessageId)
|
||||||
|
{
|
||||||
|
HttpClient httpClient = new();
|
||||||
|
var content = new FormUrlEncodedContent
|
||||||
|
(
|
||||||
|
new Dictionary<string, string>
|
||||||
|
{
|
||||||
|
{ "token", client.PlayerData.UNToken },
|
||||||
|
{ "userId", userId },
|
||||||
|
{ "data", data },
|
||||||
|
{ "messageLevel", level },
|
||||||
|
{ "replyMessageId", replyMessageId }
|
||||||
|
}
|
||||||
|
);
|
||||||
|
httpClient.Timeout = new TimeSpan(0, 0, 3);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var response = httpClient.PostAsync($"{Configuration.ServerConfiguration.ApiUrl}/Messaging/PostTextMessage", content).Result;
|
||||||
|
Log("Messaging/PostTextMessage");
|
||||||
|
|
||||||
|
if (response.StatusCode == System.Net.HttpStatusCode.OK && response.Content != null) return response.Content.ReadFromJsonAsync<bool>().Result;
|
||||||
|
else return false;
|
||||||
|
} catch (Exception e) { LogError(e.Message); return false; }
|
||||||
|
}
|
||||||
|
|
||||||
private void Log(string endpoint) => Console.WriteLine($"Sent API Request To {Configuration.ServerConfiguration.ApiUrl}/{endpoint}");
|
private void Log(string endpoint) => Console.WriteLine($"Sent API Request To {Configuration.ServerConfiguration.ApiUrl}/{endpoint}");
|
||||||
|
|
||||||
private void LogError(string message) => Console.WriteLine($"An Error Has Occured When Sending An API Request - {message}");
|
private void LogError(string message) => Console.WriteLine($"An Error Has Occured When Sending An API Request - {message}");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user