Minor improvements to chat commands
This commit is contained in:
parent
f82eac3ffc
commit
89089c9397
3 changed files with 22 additions and 16 deletions
|
@ -44,7 +44,7 @@ namespace CLre_server.Tweaks.Chat
|
||||||
auth.UserId = ChatHandler.PublicId;
|
auth.UserId = ChatHandler.PublicId;
|
||||||
_chatListener= new ChatListener(_handlers);
|
_chatListener= new ChatListener(_handlers);
|
||||||
_chatClient = new ChatClient(_chatListener, ConnectionProtocol.Udp);
|
_chatClient = new ChatClient(_chatListener, ConnectionProtocol.Udp);
|
||||||
_chatListener._chatClient = _chatClient;
|
_chatListener.ChatClient = _chatClient;
|
||||||
_chatClient.Connect(Game.Utilities.CardLifePhotonSettings.PhotonChatAppID, "1.0", auth);
|
_chatClient.Connect(Game.Utilities.CardLifePhotonSettings.PhotonChatAppID, "1.0", auth);
|
||||||
// run forever (until server shutsdown)
|
// run forever (until server shutsdown)
|
||||||
while (_running)
|
while (_running)
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace CLre_server.Tweaks.Chat
|
||||||
{
|
{
|
||||||
public class ChatListener: IChatClientListener
|
public class ChatListener: IChatClientListener
|
||||||
{
|
{
|
||||||
internal ChatClient _chatClient;
|
internal ChatClient ChatClient;
|
||||||
public static string ChatName;
|
public static string ChatName;
|
||||||
private Dictionary<ChatCommandAttribute, ChatConnectionEngine.CommandHandler> _handlers;
|
private Dictionary<ChatCommandAttribute, ChatConnectionEngine.CommandHandler> _handlers;
|
||||||
|
|
||||||
|
@ -18,12 +18,16 @@ namespace CLre_server.Tweaks.Chat
|
||||||
|
|
||||||
public void DebugReturn(DebugLevel level, string message)
|
public void DebugReturn(DebugLevel level, string message)
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
API.Utility.Logging.Log($"ServerChatLog<{level}>: {message}");
|
API.Utility.Logging.Log($"ServerChatLog<{level}>: {message}");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnDisconnected()
|
public void OnDisconnected()
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
API.Utility.Logging.MetaLog("Chat disconnected");
|
API.Utility.Logging.MetaLog("Chat disconnected");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnConnected()
|
public void OnConnected()
|
||||||
|
@ -41,13 +45,17 @@ namespace CLre_server.Tweaks.Chat
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool result = _chatClient.Subscribe(new[] {ChatName}, 10);
|
bool result = ChatClient.Subscribe(new[] {ChatName}, 10);
|
||||||
|
#if DEBUG
|
||||||
API.Utility.Logging.MetaLog($"Subscribed to chat: {result}");
|
API.Utility.Logging.MetaLog($"Subscribed to chat: {result}");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnChatStateChange(ChatState state)
|
public void OnChatStateChange(ChatState state)
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
API.Utility.Logging.MetaLog($"Chat state changed to {state}");
|
API.Utility.Logging.MetaLog($"Chat state changed to {state}");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnGetMessages(string channelName, string[] senders, object[] messages)
|
public void OnGetMessages(string channelName, string[] senders, object[] messages)
|
||||||
|
@ -56,28 +64,20 @@ namespace CLre_server.Tweaks.Chat
|
||||||
for (int i = 0; i < senders.Length; i++)
|
for (int i = 0; i < senders.Length; i++)
|
||||||
{
|
{
|
||||||
string message = messages[i].ToString();
|
string message = messages[i].ToString();
|
||||||
|
string username = stripUsernameTag(senders[i]);
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
API.Utility.Logging.MetaLog($"Chat: `{senders[i]}` said `{messages[i]}` in `{channelName}`");
|
API.Utility.Logging.MetaLog($"Chat: `{username}` said `{messages[i]}` in `{channelName}`");
|
||||||
#endif
|
#endif
|
||||||
if (messages[i].ToString().ToLower() == "hello server")
|
|
||||||
{
|
|
||||||
_chatClient.PublishMessage(channelName, $"Hi {senders[i]}!");
|
|
||||||
}
|
|
||||||
else if (messages[i].ToString().ToLower() == "hello world")
|
|
||||||
{
|
|
||||||
_chatClient.PublishMessage(channelName, $"Hello fellow programmer {senders[i]}!");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (message.StartsWith("/"))
|
if (message.StartsWith("/"))
|
||||||
{
|
{
|
||||||
string command = message.Substring(1);
|
string command = message.Substring(1);
|
||||||
string username = stripUsernameTag(senders[i]);
|
|
||||||
foreach (ChatCommandAttribute cca in _handlers.Keys)
|
foreach (ChatCommandAttribute cca in _handlers.Keys)
|
||||||
{
|
{
|
||||||
var match = cca.RegexMatch(senders[i], command);
|
var match = cca.RegexMatch(senders[i], command);
|
||||||
if (match.Success)
|
if (match.Success)
|
||||||
{
|
{
|
||||||
_handlers[cca](match, _chatClient, username);
|
_handlers[cca](match, ChatClient, username);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,17 +94,23 @@ namespace CLre_server.Tweaks.Chat
|
||||||
|
|
||||||
public void OnSubscribed(string[] channels, bool[] results)
|
public void OnSubscribed(string[] channels, bool[] results)
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
API.Utility.Logging.MetaLog($"Subscribed");
|
API.Utility.Logging.MetaLog($"Subscribed");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnUnsubscribed(string[] channels)
|
public void OnUnsubscribed(string[] channels)
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
API.Utility.Logging.MetaLog($"Unsubscribed");
|
API.Utility.Logging.MetaLog($"Unsubscribed");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnStatusUpdate(string user, int status, bool gotMessage, object message)
|
public void OnStatusUpdate(string user, int status, bool gotMessage, object message)
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
API.Utility.Logging.MetaLog($"Status update: {user}->{status} ({gotMessage}:{message})");
|
API.Utility.Logging.MetaLog($"Status update: {user}->{status} ({gotMessage}:{message})");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
private string stripUsernameTag(string sender)
|
private string stripUsernameTag(string sender)
|
||||||
|
|
|
@ -55,7 +55,7 @@ namespace CLre_server.Tweaks.Chat
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
connection.PublishMessage(ChatListener.ChatName, "Ban failure: User not found :(");
|
connection.PublishMessage(ChatListener.ChatName, $"Ban warning: {target} was added to ban list but was not connected to this server...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue