📄 chatroom.cs
字号:
using System;
using System.Collections;
namespace CO_Full_Server
{
/// <summary>
/// Summary description for ChatRoom.
/// </summary>
public class ChatRoom
{
private string m_Name = "";
private string m_Password = "";
private COClient m_Moderator;
private ArrayList m_Members = new ArrayList(2);
public string Name
{
get
{
return m_Name;
}
set
{
m_Name = value;
}
}
public string Password
{
set
{
m_Password = value;
}
}
public ChatRoom(string Name, string Password, COClient Moderator)
{
m_Name = Name;
m_Password = Password;
m_Moderator = Moderator;
}
public ChatRoom(string Name, COClient Moderator)
{
m_Name = Name;
m_Password = "";
m_Moderator = Moderator;
}
public void SendMessage(string Text, COClient Sender)
{
foreach (COClient Client in m_Members)
{
if (Client != Sender)
Client.SendData(PacketBuilder.Message(Client.MessageID, Sender.Char.Name, m_Name, Text, World.ChatType.Team));
}
}
public bool Join(COClient Client, string Password)
{
if ((m_Password == "" || m_Password == Password) && !m_Members.Contains(Client))
{
m_Members.Add(Client);
SendMessage(Client.Char.Name + " has joined the room.", Client);
ListMembers(Client);
return true;
}
else
{
return false;
}
}
public void ListMembers(COClient Client)
{
string Members = "Current users in this room: ";
string [] Send;
foreach (COClient Cli in m_Members)
{
if (Members.Length % 150 < 16)
Members += "\n";
Members = Members + Cli.Char.Name + ", ";
}
Send = Members.Split(new char[]{'\n'});
foreach (string Message in Send)
{
Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", Client.Char.Name, Message, World.ChatType.Talk));
}
}
public bool Leave(COClient Sender)
{
SendMessage(Sender.Char.Name + " has left the room.", Sender);
m_Members.Remove(Sender);
return m_Members.Count == 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -