예제 #1
0
    public List <Equipment> Equipment; //make dict?

    Registry()
    {
        Commands = new List <Command>()
        {
            new Command("Help", "Tells you whats up!", "Help -command(string)", (par) =>
            {
                string msg = "";
                if (par.Length == 1)
                {
                    for (int i = 0; i < Commands.Count; i++)
                    {
                        msg += Commands[i].Name + " ";
                        msg += Commands[i].Discription + "\n";
                    }
                }
                else
                {
                    for (int i = 0; i < Commands.Count; i++)
                    {
                        if (Commands[i].Name == par[1])
                        {
                            msg += Commands[i].Discription + " ";
                            msg += Commands[i].Useage + "\n";
                            continue;
                        }
                    }
                }
                return("Done\n" + msg);
                //send to owner;
            }),
            new Command("List", "List player names and ids", "List", (par) =>
            {
                string msg = "";
                string str;
                if (par.Length == 1)
                {
                    str = "Players";
                }
                else
                {
                    str = par[1];
                }

                switch (str)
                {
                case "Help":
                    msg += "Help\n" +
                           "Players\n" +
                           "All\n" +
                           "Properties\n";
                    break;

                case "Players":
                    foreach (var v in NetSystem.I.Players)
                    {
                        msg += v.Value.Name;
                        msg += ": " + v.Key + "\n";
                    }
                    break;

                case "All":
                    foreach (var v in NetworkIdentity.spawned)
                    {
                        msg += v.Value.name;
                        msg += ": " + v.Key + "\n";
                    }
                    break;

                default:
                    msg += str + " is not an option try Help";
                    break;
                }

                return("Done\n" + msg);
                //send to owner;
            }),
            new Command("SetName", "Sets the Name of a Player", "SetName PlayerID(uint) Name(string)", (par) =>
            {
                if (par.Length < 3)
                {
                    return("Not All Parameters Filled");
                }
                if (uint.TryParse(par[1], out uint id))
                {
                    if (NetSystem.I.Players.TryGetValue(id, out NetPlayer NP))
                    {
                        NP.RpcName(par[2]);
                    }
                    else
                    {
                        return("Invalid ID");
                    }
                }
                else
                {
                    return("Failed to Parse ID");
                }
                return("Done");
            }),
            new Command("SetColor", "Sets the Color of a Player", "SetColor PlayerID(uint) Color(Color)", (par) =>
            {
                if (par.Length < 3)
                {
                    return("Not All Parameters Filled");
                }
                if (ColorUtility.TryParseHtmlString(par[2], out Color C))
                {
                    if (uint.TryParse(par[1], out uint id))
                    {
                        if (NetSystem.I.Players.TryGetValue(id, out NetPlayer NP))
                        {
                            NP.RpcColor(C);
                        }
                        else
                        {
                            return("Invalid ID");
                        }
                    }
                    else
                    {
                        return("Failed to Parse ID");
                    }
                }
                else
                {
                    return("Failed to Parse Color");
                }
                return("Done");
            }),
            new Command("Kill", "Kills the selected Player", "Kill PlayerID(uint)", (par) =>
            {
                if (par.Length < 2)
                {
                    return("Not All Parameters Filled");
                }
                if (uint.TryParse(par[1], out uint id))
                {
                    if (NetSystem.I.PlayerBrains.TryGetValue(id, out PlayerBrain PB))
                    {
                        PB.CmdDie();
                    }
                    else
                    {
                        return("Invalid ID");
                    }
                }
                else
                {
                    return("Failed to Parse ID");
                }
                return("Done");
            }),
            new Command("Tp", "Teleports the selected Player", "TP PlayerID(uint) {[PlayerID(uint)][x(float) y(float)]}", (par) =>
            {
                if (par.Length < 3)
                {
                    return("Not All Parameters Filled");
                }
                if (!uint.TryParse(par[1], out uint id))
                {
                    return("Failed to Parse ID");
                }
                if (!NetSystem.I.PlayerBrains.TryGetValue(id, out PlayerBrain PB))
                {
                    return("Invalid ID");
                }

                if (par.Length > 3)
                {
                    if (!float.TryParse(par[2], out float x))
                    {
                        return("Failed to Parse float x");
                    }
                    if (!float.TryParse(par[3], out float y))
                    {
                        return("Failed to Parse float y");
                    }

                    PB.CmdPos(new Vector2(x, y), Vector2.zero);
                }
                else
                {
                    if (!uint.TryParse(par[1], out uint id2))
                    {
                        return("Failed to Parse ID");
                    }
                    if (!NetSystem.I.PlayerBrains.TryGetValue(id2, out PlayerBrain PB2))
                    {
                        return("Invalid ID");
                    }

                    PB.CmdPos(PB2.transform.position, Vector2.zero);
                }

                return("Done");
            }),
            new Command("Stat", "Manipulates Stats", "SetStat NetID(uint) Option[List{-Option[Help...]},Comp{Component(Type) Loop},Set{Field(string) Value(primitive)}]", StatCommand.StatExe)
        };
    }