public static void ListBans(UserObject userobj) { int i = 0; Items.ForEach(x => userobj.SendPacket(AresTCPPackets.NoSuch((i++) + " - " + x.Name + " [" + x.ExternalIP + "]"))); if (i == 0) userobj.SendPacket(AresTCPPackets.NoSuch("no banned users")); }
public static void SendMOTD(UserObject userobj) { List<byte> buf = new List<byte>(); motd.ForEach(x => { buf.AddRange(AresTCPPackets.NoSuch(x.Replace("+n", userobj.Name))); if (buf.Count > 800) { userobj.SendPacket(AresTCPPackets.ClientCompressed(buf.ToArray())); buf.Clear(); } }); if (buf.Count > 0) userobj.SendPacket(AresTCPPackets.ClientCompressed(buf.ToArray())); }
public static void ListScripts(UserObject userobj) { if (userobj.Level < Settings.ScriptLevel) return; foreach (var script in ScriptManager.Items) { userobj.SendPacket(AresTCPPackets.NoSuch(script.ScriptName)); } }
public static void LoadScript(UserObject userobj, String args) { if (userobj.Level < Settings.ScriptLevel) return; string scriptDir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData); scriptDir = System.IO.Path.Combine(scriptDir, "Arca4", "Scripts"); if (!Directory.Exists(scriptDir)) Directory.CreateDirectory(scriptDir); // Not a javascript script if (!args.EndsWith(".js")) { // TODO: Localizaton support userobj.SendPacket(AresTCPPackets.NoSuch("File is not a javascript script")); return; } // file doesnt exist return false string filePath = Path.Combine(scriptDir, args); if (!File.Exists(filePath)) { // TODO: Localizaton support userobj.SendPacket(AresTCPPackets.NoSuch("File does not exist")); return; } ScriptManager.Items.Remove(args); ScriptManager.Items.Add(args, File.ReadAllText(filePath, Encoding.UTF8)); }
public static void Info(UserObject userobj) { UserPool.Users.ForEach(x => { if (x.LoggedIn) userobj.SendPacket(AresTCPPackets.NoSuch(x.ID + " - " + x.Name + " -> " + x.Vroom)); }); }
private static void ProcessVCIgnore(UserObject userobj, AresTCPPacketReader packet) { if (Settings.CanVoiceChat) { String name = packet.ReadString(); if (userobj.VCIgnores.Contains(name)) { userobj.SendPacket(AresTCPPackets.NoSuch(name + " is voice chat unignored")); userobj.VCIgnores.RemoveAll(x => x == name); } else { userobj.SendPacket(AresTCPPackets.NoSuch(name + " is voice chat ignored")); userobj.VCIgnores.Add(name); } } }
private static void ProcessVCFirstTo(UserObject userobj, AresTCPPacketReader packet) { if (Settings.CanVoiceChat) { String name = packet.ReadString(); UserObject target = UserPool.Users.Find(x => x.LoggedIn && x.Name == name); if (target != null) if (!target.VCIgnores.Contains(userobj.Name)) if (target.CanVCPrivate) { byte[] buffer = CustomPackets.VoiceChatFirstTo(userobj.Name, packet.ReadBytes()); target.SendPacket(buffer); } else userobj.SendPacket(CustomPackets.VoiceChatNoPrivate(target.Name)); else userobj.SendPacket(CustomPackets.VoiceChatIgnored(target.Name)); else userobj.SendPacket(AresTCPPackets.OfflineUser(name)); } }
public static void SendUserList(UserObject userobj) { userobj.SendPacket(AresTCPPackets.UserListBotItem()); Users.ForEach(x => { if (x.LoggedIn && x.Vroom == userobj.Vroom) userobj.SendPacket(AresTCPPackets.UserListItem(x)); }); userobj.SendPacket(AresTCPPackets.UserListEnd()); Users.ForEach(x => { if (x.LoggedIn && x.Vroom == userobj.Vroom) { if (x.Avatar.Length > 0) userobj.SendPacket(AresTCPPackets.Avatar(x)); if (!String.IsNullOrEmpty(x.PersonalMessage)) userobj.SendPacket(AresTCPPackets.PersonalMessage(x)); if (x.Font != null) userobj.SendPacket(CustomPackets.CustomFont(x)); if (x.CanVCPrivate || x.CanVCPublic) userobj.SendPacket(CustomPackets.VoiceChatUserSupport(x)); } }); }
public static void SendCustomEmotesToUser(UserObject userobj) { Users.ForEach(x => { if (x.LoggedIn && x.Vroom == userobj.Vroom) if (x.SupportsCustomEmoticons) x.CustomEmoticons.ForEach(y => userobj.SendPacket(CustomPackets.CustomEmoteItem(x, y))); }); }