Exemple #1
0
        public void Use(MCForge.Entity.Player p, string[] args)
        {
            if (p == null) {
                Logger.Log("This command can only be used in game");
                return;
            }

            p.SendMessage("Place two blocks to determine the corners.");

            byte block = 0;

            if (args.Length > 0) {
                byte test = Block.NameToBlock(args[0]);
                if (test == 255) {
                    p.SendMessage("That is not a valid block");
                    return;
                }
                block = test;
            }
            else
                block = 255;

            //TODO: Check if user can place block
            //If user can put all of the blocks down

            p.ExtraData.CreateIfNotExist<object, object>("Command.Line", new BlockInfo(255,new Vector3S(0,0,0)));
            p.OnPlayerBlockChange.Normal += new Event<Player, BlockChangeEventArgs>.EventHandler(CatchBlockOne);
        }
       public void Use(MCForge.Entity.Player p, string[] args) {

           if (p.GetType() == typeof(ConsolePlayer)) {
               p.SendMessage("This can only be used in game");
               return;
           }

           if (args.Length < 1) {
               if(p.ExtraData.ContainsKey("FollowData")){
                   p.ExtraData.Remove("FollowData");
                   p.SendMessage("Stopped Following");
                   p.IsHidden = !p.IsHidden;
                   if (!p.IsHidden)
                       p.SpawnThisPlayerToOtherPlayers();
                   return;
               }
               Help(p);
               return;
           }
           var who = Player.Find(args[0]);

           if (who == null || who.GetType() == typeof(ConsolePlayer)) {
               p.SendMessage("The player you want to follow doesn't exist");
               return;
           }

           p.SendMessage("You are now following " + who.Color + who.Username);
           p.ExtraData.ChangeOrCreate<object, object>("FollowData", who.Username);
           p.GlobalDie();
           p.IsHidden = !p.IsHidden;
           if (!p.IsHidden)
               p.SpawnThisPlayerToOtherPlayers();
           who.OnPlayerMove.Normal += new MCForge.API.Events.Event<Player, MCForge.API.Events.MoveEventArgs>.EventHandler(OnPlayerMove);
       }
        public void Use(MCForge.Entity.Player p, string[] args) {
            if (args.Length < 1 || args.Length > 3) {
                Help(p);
                return;
            }

            if (args[0].ToLower() == "off" && p.ExtraData.ContainsKey("BrushData")) {
                p.OnPlayerBlockChange.Normal -= BlockChange;
                p.ExtraData.Remove("BrushData");
                p.SendMessage("Brush turned off");
                return;
            }

            byte block = 255;
            int size = 3;
            Type brushType =  Server.ServerAssembly.GetType("MCForge.World.Drawing." + StringUtils.CapitolizeFirstChar(args[0]) + "Brush");

            if (brushType == null) {
                p.SendMessage("Invalid brush type");
                Help(p);
                return;
            }

            if (args.Length == 3) {
                block = Block.NameToBlock(args[2]);
                if (block == Block.BlockList.UNKNOWN) {
                    p.SendMessage("That is not a valid block");
                    return;
                }
            }

            if (args.Length >= 2) {
                try {
                    size = int.Parse(args[1]);
                }
                catch {
                    p.SendMessage("That is not a number");
                    Help(p);
                    return;
                }
            }

            p.SendMessage("Start brushing!!");
            p.ExtraData.ChangeOrCreate<object, object>("BrushData", new BrushData(brushType, block, size));
            p.OnPlayerBlockChange.Normal += BlockChange;

        }
        public void Use(MCForge.Entity.Player p, string[] args)
        {
            if (args.Length < 1) {
                if (playerDictionary.ContainsKey(p)) {
                    p.SendMessage("&cStatic Disabled");
                    p.OnCommandEnd.Normal -= OnEndCommand;
                    playerDictionary.Remove(p);
                }
                else {
                    Help(p);
                }
                return;
            }

            ICommand cmd = Command.Find(args[0]);

            if (cmd == null) {
                p.SendMessage("&cCan't find the specified command");
                return;
            }

            p.OnCommandEnd.Normal += OnEndCommand;
            playerDictionary.ChangeOrCreate<Player, ICommand>(p, cmd);

            string[] newArgs;
            if (args.Length < 2) {
                newArgs = new string[0];
            }
            else {
                newArgs = new string[args.Length - 1];
                args.CopyTo(newArgs, 1);
            }

            p.SendMessage("&aStatic Enabled");
            cmd.Use(p, newArgs);
        }
 public void Help(MCForge.Entity.Player p) {
     p.SendMessage("/brush <brush type> [optional: size] [optional: block]  - place blocks on the level using a brush");
     p.SendMessage("/brush off - turns off the brush...");
     p.SendMessage("Valid brush types:");
     p.SendMessage("Cube, Sphere, Random");
     //TODO: add more types....
 }
 public void Help(MCForge.Entity.Player p) {
     p.SendMessage("/follow <name> - follows a user, great if you have your suspicions");
     p.SendMessage("/follow - to stop following a player (if you are already following one)");
 }
 void OnPlayerMove(Player sender, MCForge.API.Events.MoveEventArgs args) {
     foreach (Player p in Server.Players.ToArray())
     {
         if(p.ExtraData.ContainsValue(sender.Username))
         {
             p.Pos = args.ToPosition;
             p.Rot = sender.Rot;
             p.SendThisPlayerTheirOwnPos();
         }
     }
 }
 public void Help(MCForge.Entity.Player p)
 {
     p.SendMessage("static [command] (args <optional>) - Makes every command a toggle.");
     p.SendMessage("If [command] is given, then that command is used");
     p.SendMessage("If (args) is given it will use that command with specified arguments");
 }
 public virtual void SendPacket(MCForge.Core.Packet p) {
     Logger.Log("" + ((p.bytes != null && p.bytes.Length > 0) ? p.bytes[0] : -1));
 }
 public void Help(MCForge.Entity.Player p) {
    
 }
 public void Use(MCForge.Entity.Player p, string[] args) {
     p.SendMessage("Break block to get info");
     p.OnPlayerBlockChange.Normal += OnBlockChange;
 }
Exemple #12
0
 void OnPlayerMove_Normal(Player sender, MCForge.API.Events.MoveEventArgs args)
 {
     int count = (int)sender.ExtraData["RunCounter"];
     count++;
     sender.ExtraData["RunCounter"] = count;
     if (count % 15 != 0) return;
     sender.ExtraData["RunCounter"] = 0;
     Vector3S tmpPos = new Vector3S(args.FromPosition);
     tmpPos.Horizontal = tmpPos.Horizontal.GetMove(320, args.ToPosition.Horizontal);
     if (tmpPos.x < 32 || tmpPos.z < 32 || tmpPos.x > (sender.Level.CWMap.Size.x - 1) * 32 || tmpPos.z > (sender.Level.CWMap.Size.z - 1) * 32) return;
     Packet pa = new Packet();
     pa.Add(Packet.Types.SendTeleport);
     pa.Add((sbyte)-1);
     pa.Add(tmpPos.x);
     pa.Add((short)(tmpPos.y));
     pa.Add(tmpPos.z);
     pa.Add(new byte[2] { (byte)sender.Rot.x, (byte)sender.Rot.z });
     sender.oldPos = tmpPos;
     sender.Pos = tmpPos;
     sender.oldRot = sender.Rot;
     sender.SendPacket(pa);
     args.Cancel();
     count++;
 }
Exemple #13
0
 private static void OnPacket(MCForge.Entity.Player sender, API.Events.PacketEventArgs args)
 {
     if (cancelPackets.Contains((byte)args.Type)) {
         args.Cancel();
         return;
     }
     if (reducePackets.ContainsKey((byte)args.Type)) {
         if (xthPackets[(byte)args.Type] % reducePackets[(byte)args.Type] != 0) {
             xthPackets[(byte)args.Type]++;
             args.Cancel();
             return;
         }
         else {
             xthPackets[(byte)args.Type] = 1;
         }
     }
     if (hidePackets.Contains((byte)args.Type)) return;
     Logger.Log(((args.Incoming) ? "Incoming" : "Outgoing") + " Packet " + (packet.types)(byte)args.Type + "(" + (byte)args.Type + ") for player " + sender.Username, ((args.Incoming) ? Color.Green : Color.Red), Color.Black);
 }
 public Check(int b, string extraInfo = "", MCForge.Player placer = null)
 {
     this.b = b;
     time = 0;
     this.extraInfo = extraInfo;
     p = placer;
 }
Exemple #15
0
 public void Help(MCForge.Entity.Player p)
 {
     throw new NotImplementedException();
 }