Merge pull request #42 from Makinolo/main
Allows sending messages only to a group of users
This commit is contained in:
commit
d1b0082768
@ -266,10 +266,10 @@ namespace CoopClient
|
||||
/// <summary>
|
||||
/// Enable or disable the local traffic for this player
|
||||
/// </summary>
|
||||
/// <param name="stop"></param>
|
||||
public static void SetLocalTraffic(bool stop)
|
||||
/// <param name="enable"></param>
|
||||
public static void SetLocalTraffic(bool enable)
|
||||
{
|
||||
Main.DisableTraffic = stop;
|
||||
Main.DisableTraffic = !enable;
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
|
@ -67,7 +67,9 @@ namespace CoopClient
|
||||
|
||||
MainSettings = Util.ReadSettings();
|
||||
MainNetworking = new Networking();
|
||||
#if !NON_INTERACTIVE
|
||||
MainMenu = new MenusMain();
|
||||
#endif
|
||||
MainChat = new Chat();
|
||||
Players = new Dictionary<long, EntitiesPlayer>();
|
||||
NPCs = new Dictionary<long, EntitiesNpc>();
|
||||
|
@ -105,11 +105,11 @@ namespace CoopClient.Menus.Sub
|
||||
MainMenu.Visible = false;
|
||||
|
||||
Main.MainNetworking.DisConnectFromServer(address);
|
||||
|
||||
#if !NON_INTERACTIVE
|
||||
Main.MainMenu.ServerIpItem.AltTitle = address;
|
||||
|
||||
Main.MainMenu.MainMenu.Visible = true;
|
||||
|
||||
#endif
|
||||
Main.MainSettings.LastServerAddress = address;
|
||||
Util.SaveSettings();
|
||||
}
|
||||
|
@ -166,9 +166,10 @@ namespace CoopServer
|
||||
{
|
||||
try
|
||||
{
|
||||
Logging.Info("Loading resource...");
|
||||
string resourcepath = AppDomain.CurrentDomain.BaseDirectory + "resources" + Path.DirectorySeparatorChar + MainSettings.Resource + ".dll";
|
||||
Logging.Info($"Loading resource {resourcepath}...");
|
||||
|
||||
Assembly asm = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + "resources" + Path.DirectorySeparatorChar + MainSettings.Resource + ".dll");
|
||||
Assembly asm = Assembly.LoadFrom(resourcepath);
|
||||
Type[] types = asm.GetExportedTypes();
|
||||
IEnumerable<Type> validTypes = types.Where(t => !t.IsInterface && !t.IsAbstract).Where(t => typeof(ServerScript).IsAssignableFrom(t));
|
||||
Type[] enumerable = validTypes as Type[] ?? validTypes.ToArray();
|
||||
|
@ -207,10 +207,19 @@ namespace CoopServer
|
||||
#endregion
|
||||
|
||||
#region FUNCTIONS
|
||||
public static void SendModPacketToAll(string mod, byte customID, byte[] bytes)
|
||||
public static void SendModPacketToAll(string mod, byte customID, byte[] bytes, List<long> netHandleList = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<NetConnection> connections;
|
||||
if (netHandleList == null)
|
||||
{
|
||||
connections = Server.MainNetServer.Connections;
|
||||
}
|
||||
else
|
||||
{
|
||||
connections = Server.MainNetServer.Connections.FindAll(c => netHandleList.Contains(c.RemoteUniqueIdentifier));
|
||||
}
|
||||
NetOutgoingMessage outgoingMessage = Server.MainNetServer.CreateMessage();
|
||||
new ModPacket()
|
||||
{
|
||||
@ -220,7 +229,7 @@ namespace CoopServer
|
||||
CustomPacketID = customID,
|
||||
Bytes = bytes
|
||||
}.PacketToNetOutGoingMessage(outgoingMessage);
|
||||
Server.MainNetServer.SendMessage(outgoingMessage, Server.MainNetServer.Connections, NetDeliveryMethod.ReliableOrdered, (int)ConnectionChannel.Mod);
|
||||
Server.MainNetServer.SendMessage(outgoingMessage, connections, NetDeliveryMethod.ReliableOrdered, (int)ConnectionChannel.Mod);
|
||||
Server.MainNetServer.FlushSendQueue();
|
||||
}
|
||||
catch (Exception e)
|
||||
@ -285,7 +294,7 @@ namespace CoopServer
|
||||
return Server.Clients.Find(x => x.Player.Username.ToLower() == username.ToLower());
|
||||
}
|
||||
|
||||
public static void SendChatMessageToAll(string message, string username = "Server")
|
||||
public static void SendChatMessageToAll(string message, string username = "Server", List<long> netHandleList = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -294,13 +303,22 @@ namespace CoopServer
|
||||
return;
|
||||
}
|
||||
|
||||
List<NetConnection> connections;
|
||||
if (netHandleList == null)
|
||||
{
|
||||
connections = Server.MainNetServer.Connections;
|
||||
}
|
||||
else
|
||||
{
|
||||
connections = Server.MainNetServer.Connections.FindAll(c => netHandleList.Contains(c.RemoteUniqueIdentifier));
|
||||
}
|
||||
NetOutgoingMessage outgoingMessage = Server.MainNetServer.CreateMessage();
|
||||
new ChatMessagePacket()
|
||||
{
|
||||
Username = username,
|
||||
Message = message
|
||||
}.PacketToNetOutGoingMessage(outgoingMessage);
|
||||
Server.MainNetServer.SendMessage(outgoingMessage, Server.MainNetServer.Connections, NetDeliveryMethod.ReliableOrdered, (int)ConnectionChannel.Chat);
|
||||
Server.MainNetServer.SendMessage(outgoingMessage, connections, NetDeliveryMethod.ReliableOrdered, (int)ConnectionChannel.Chat);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user