Skip to content

Commit

Permalink
Fixed some bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
bdfzchen2015 committed Mar 18, 2017
1 parent f32d16c commit 8c99557
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 374 deletions.
18 changes: 18 additions & 0 deletions Extensions/MD5Crypto.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;

namespace ServerSideCharacter.Extensions
{
public static class MD5Crypto
{
public static string ComputeMD5(string str)
{
MD5 md5 = new MD5CryptoServiceProvider();
var buffer = md5.ComputeHash(Encoding.Default.GetBytes(str));
return BitConverter.ToString(buffer).Replace("-", "");
}
}
}
7 changes: 5 additions & 2 deletions GroupManage/GroupType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,10 @@ internal static void SetupGroups()
};
AddToGroup(crminalGroup);

Group defaultGroup = new Group("default");
Group defaultGroup = new Group("default")
{
ChatPrefix = "Default"
};
defaultGroup.permissions.Add(new PermissionInfo("tp", "Teleport player"));
defaultGroup.permissions.Add(new PermissionInfo("ls", "List online player's info"));
defaultGroup.permissions.Add(new PermissionInfo("auth", "Authorize as super admin"));
Expand Down Expand Up @@ -56,7 +59,7 @@ internal static void SetupGroups()
{
ChatColor = Color.Cyan,
ChatPrefix = "Super Admin",
permissions = new List<PermissionInfo>(admin.permissions) {new PermissionInfo("group", "Manage group")}
permissions = new List<PermissionInfo>(admin.permissions)
};
AddToGroup(superAdmin);
}
Expand Down
7 changes: 7 additions & 0 deletions MessageSender.cs
Original file line number Diff line number Diff line change
Expand Up @@ -242,5 +242,12 @@ public static void SendRegionRemove(int plr, string name)
p.Write(name);
p.Send();
}

public static void SendSSC()
{
ModPacket p = ServerSideCharacter.Instance.GetPacket();
p.Write((int)SSCMessageType.ServerSideCharacter);
p.Send();
}
}
}
1 change: 1 addition & 0 deletions PacketType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,6 @@ public enum SSCMessageType
TeleportPalyer,
ToggleGodMode,
SetGodMode,
ServerSideCharacter
}
}
320 changes: 0 additions & 320 deletions ServerCommand/CommandDelegate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,324 +13,4 @@ public enum ListType
ListPlayers,
ListRegions
}

public static class CommandDelegate
{
public static void SetUpCommands(List<Command> list)
{
list.Clear();
list.Add(new Command("save", SaveCommand, "Save player's data"));
list.Add(new Command("register", RegisterCommand, "Register an account"));
list.Add(new Command("login", LoginCommand, "Login to an account"));
list.Add(new Command("kill", KillCommand, "Kill a player"));
list.Add(new Command("ls", ListCommand, "List current player's info"));
list.Add(new Command("group", GroupCommand, "Group management"));
list.Add(new Command("lock", LockCommand, "Lock a player"));
list.Add(new Command("butcher", ButcherCommand, "Butcher all hostile npcs"));
list.Add(new Command("tp", TeleportCommand, "Teleport to a player"));
list.Add(new Command("time", TimeCommand, "Check or adjust the time of the world"));
list.Add(new Command("help", HelpCommand, "Show commands"));
list.Add(new Command("region", RegionCommand, "Region management"));
list.Add(new Command("item", ItemCommand, "Give player items"));
list.Add(new Command("find", FindCommand, "Find item(-i) or npc(-n) names"));
list.Add(new Command("auth", AuthCommand, "Aithorize command"));
list.Add(new Command("sm", SummonCommand, "Summon npcs"));
list.Add(new Command("tphere", TPHereCommand, "Teleport a player to your position"));
list.Add(new Command("god", GodCommand, "Toggle player's god mode"));
}

private static void GodCommand(string[] obj)
{
ModPacket pack = ServerSideCharacter.Instance.GetPacket();
pack.Write((int)SSCMessageType.ToggleGodMode);
pack.Write(Main.myPlayer);
pack.Send();
}

private static void TPHereCommand(string[] obj)
{
try
{
ModPacket pack = ServerSideCharacter.Instance.GetPacket();
pack.Write((int)SSCMessageType.TPHereCommand);
pack.Write((byte)Main.myPlayer);
pack.Write(Convert.ToByte(obj[0]));
pack.Send();
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /tphere <player id>", 255, 25, 0);
}
}

private static void SummonCommand(string[] args)
{
try
{
MessageSender.SendSummonCommand(Main.myPlayer, Convert.ToInt32(args[0]), Convert.ToInt32(args[1]));
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /sm <npc id> <number>", 255, 25, 0);
}
}

private static void AuthCommand(string[] obj)
{
try
{
MessageSender.SendAuthRequest(Main.myPlayer, obj[0]);
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /auth <code>", 255, 25, 0);
}
}

private static void FindCommand(string[] obj)
{
try
{
string type = obj[0];
string tryToFind = obj[1];
if (type == "-i")
{
List<int> numbers = new List<int>(Main.itemName.Length);
for (int i = 0; i < Main.itemName.Length; i++)
{
numbers.Add(i);
}
var items = numbers.Where(i => Main.itemName[i].ToLower().Contains(tryToFind.ToLower()));
var enumerable = items as int[] ?? items.ToArray();
foreach (var pair in enumerable)
{
Main.NewText(Main.itemName[pair] + " -> ID: " + pair, 255, 255, 50);
}
Main.NewText("Total Find: " + enumerable.Count());
}
else if(type == "-n")
{
List<int> numbers = new List<int>(Main.npcName.Length);
for (int i = 0; i < Main.npcName.Length; i++)
{
numbers.Add(i);
}
var items = numbers.Where(i => Main.npcName[i].ToLower().Contains(tryToFind.ToLower()));
var enumerable = items as IList<int> ?? items.ToList();
foreach (var pair in enumerable)
{
Main.NewText(Main.npcName[pair] + " -> ID: " + pair, 255, 255, 50);
}
Main.NewText("Total Find: " + enumerable.Count());
}
else
{
Main.NewText("Invalid Sytanx! Usage: /find <type(-n/-i)> <string>", 255, 25, 0);
}

}
catch
{
Main.NewText("Invalid Sytanx! Usage: /find <type(-n/-i)> <string>", 255, 25, 0);
}
}

private static void SaveCommand(string[] args)
{
MessageSender.SendRequestSave(Main.myPlayer);
Main.NewText("Saved player's data");
}
private static void RegisterCommand(string[] args)
{
try
{
MessageSender.SendSetPassword(Main.myPlayer, args[0]);
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /register <your password>", 255, 255, 0);
}
}

private static void LoginCommand(string[] args)
{
try
{
MessageSender.SendLoginPassword(Main.myPlayer, args[0]);
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /login <your password>", 255, 255, 0);
}
}

private static void KillCommand(string[] args)
{
try
{
MessageSender.SendKillCommand(Main.myPlayer, Convert.ToInt32(args[0]));
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /kill <player id>", 255, 25, 0);
}
}

private static void TeleportCommand(string[] args)
{
try
{
MessageSender.SendTeleportCommand(Main.myPlayer, Convert.ToInt32(args[0]));
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /tp <player id>", 255, 25, 0);
}
}

private static void TimeCommand(string[] args)
{
try
{
if (args.Length == 0)
{
MessageSender.SendTimeCommand(Main.myPlayer, false, 0, true);
}
else
{

switch (args[0])
{
case "night":
MessageSender.SendTimeCommand(Main.myPlayer, true, 0, false);
break;
case "morning":
MessageSender.SendTimeCommand(Main.myPlayer, true, 0, true);
break;
case "noon":
MessageSender.SendTimeCommand(Main.myPlayer, true, 27000, true);
break;
case "midnight":
MessageSender.SendTimeCommand(Main.myPlayer, true, 16200, false);
break;
default:
Main.NewText("Invalid Sytanx! Usage: /time [night/morning/noon/midnight]", 255, 25, 0);
break;
}
}
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /time [night/morning/noon/midnight]", 255, 25, 0);
}
}

private static void ListCommand(string[] args)
{
try
{
bool all = false;
ListType type = ListType.ListPlayers;
if (args.Length > 0)
{
if (args.Any(str => str.Equals("-al")))
{
all = true;
}
if (args[0] == "-rg")
{
type = ListType.ListRegions;
}
}
MessageSender.SendListCommand(Main.myPlayer, type, all);
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /ls [-al]", 255, 25, 0);
}
}

private static void ButcherCommand(string[] args)
{
MessageSender.SendButcherCommand(Main.myPlayer);
}

private static void HelpCommand(string[] args)
{
MessageSender.SendHelpCommand(Main.myPlayer);
}

private static void LockCommand(string[] args)
{
try
{
MessageSender.SendLockCommand(Main.myPlayer, Convert.ToInt32(args[0]), Convert.ToInt32(args[1]));
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /lock <player id> <time>", 255, 25, 0);
}
}

private static void ItemCommand(string[] args)
{
try
{
MessageSender.SendItemCommand(Convert.ToInt32(args[0]));
}
catch
{
Main.NewText("Invalid Sytanx! Usage: /item <type>", 255, 25, 0);
}
}

private static void GroupCommand(string[] args)
{
try
{
if (args[0] == "set")
{
string hash = args[1];
MessageSender.SendSetGroup(Main.myPlayer, hash, args[2]);
}
}
catch(Exception ex)
{
Main.NewText("Invalid Sytanx! Usage: /group set <$hash> <permission group>", 255, 25, 0);
}
}

private static void RegionCommand(string[] args)
{
try
{
if (args[0] == "create")
{
if ((ServerSideCharacter.TilePos1 == Vector2.Zero) || (ServerSideCharacter.TilePos2 == Vector2.Zero))
{
string name = args[1];
MessageSender.SendRegionCreate(Main.myPlayer, name);
ServerSideCharacter.TilePos1 = ServerSideCharacter.TilePos2 = Vector2.Zero;
}
else
{
Main.NewText("This is an invalid region", 255, 255, 0);
}
}
else if(args[0] == "info")
{

}
else if (args[0] == "delete")
{
string name = args[1];
MessageSender.SendRegionRemove(Main.myPlayer, name);
}
}
catch (Exception ex)
{
Main.NewText("Invalid Sytanx! Usage: /region <create/info/delete> [region name]", 255, 25, 0);
}
}
}
}
Loading

0 comments on commit 8c99557

Please sign in to comment.