public static void SetParamIteration(Player p, CommandReader cmd)
		{
			string strParam = cmd.Next();
			if (string.IsNullOrWhiteSpace(strParam))
			{
				p.Message("Error: missing param variable name");
				return;
			}

			strParam = strParam.ToLower();

			try
			{
				CheckParamVar(strParam);

				double from = ReadDoubleParam(cmd, "lower bound");
				double to = ReadDoubleParam(cmd, "upper bound");
				double step = ReadDoubleParam(cmd, "step");

				if (step == 0 ||
				    (to - from)/step < 0)
					throw new ArgumentException("wrong iteration bounds/step combination");

				p.Message("Iteration for " + strParam + " from " + from + " to " + to + " with step " + step + ". " +
				          ((to - from)/step + 1) + " steps.");

				GetPlayerParametrizationParamsStorage(p)[VarNameToIdx(strParam[0])] = new double[] {from, to, step};
			}
			catch (Exception e)
			{
				p.Message("Error: " + e.Message);
			}
		}
Ejemplo n.º 2
1
        internal static void BRB(Player player, Command cmd)
        {
            StreamReader streamReader = new StreamReader("plugins/brbMessage.txt");
            string message = streamReader.ReadToEnd();
            streamReader.Close();

            string msg = cmd.NextAll().Trim();
            if (player.Info.IsMuted)
            {
                player.MessageMuted();
                return;
            }
            if (msg.Length > 0)
            {
                Server.Message("{0}&S &EWill Brb &9({1})",
                                  player.ClassyName, msg);
                player.IsAway = true;
                return;
            }
            else
            {
                Server.Players.Message("&S{0} &EWill Brb &9(" + message + ")", player.ClassyName);
                player.IsAway = true;
            }
        }
Ejemplo n.º 3
1
        internal static void StaffChat( Player player, Command cmd ) {
            if( player.Info.IsMuted ) {
                player.MutedMessage();
                return;
            }

            if( DateTime.UtcNow < player.Info.MutedUntil ) {
                player.Message( "You are muted for another {0:0} seconds.",
                                player.Info.MutedUntil.Subtract( DateTime.UtcNow ).TotalSeconds );
                return;
            }


            Player[] plist = Server.PlayerList;

            if( plist.Length > 0 ) player.Info.LinesWritten++;

            string message = cmd.NextAll();
            if( message != null && message.Trim().Length > 0 ) {
                message = message.Trim();
                if( player.Can( Permission.UseColorCodes ) && message.Contains( "%" ) ) {
                    message = Color.ReplacePercentCodes( message );
                }
                for( int i = 0; i < plist.Length; i++ ) {
                    if( (plist[i].Can( Permission.ReadStaffChat ) || plist[i] == player) && !plist[i].IsIgnoring( player.Info ) ) {
                        plist[i].Message( "{0}(staff){1}{0}: {2}", Color.PM, player.GetClassyName(), message );
                    }
                }
            }
        }
Ejemplo n.º 4
1
 public BlockUpdate( Player origin, Vector3I coord, Block blockType ) {
     Origin = origin;
     X = (short)coord.X;
     Y = (short)coord.Y;
     Z = (short)coord.Z;
     BlockType = blockType;
 }
Ejemplo n.º 5
1
 static void TrollHandler(Player player, Command cmd)
 {
     string Name = cmd.Next();
     if (Name == null)
     {
         player.Message("Player not found. Please specify valid name.");
         return;
     }
     if (!Player.IsValidName(Name))
         return;
     Player target = Server.FindPlayerOrPrintMatches(player, Name, true, true);
     if (target == null)
         return;
     string options = cmd.Next();
     if (options == null)
     {
         CdTroll.PrintUsage(player);
         return;
     }
     string Message = cmd.NextAll();
     if (Message.Length < 1 && options.ToLower() != "leave")
     {
         player.Message("&WError: Please enter a message for {0}.", target.ClassyName);
         return;
     }
     switch (options.ToLower())
     {
         case "pm":
             if (player.Can(Permission.UseColorCodes) && Message.Contains("%"))
             {
                 Message = Color.ReplacePercentCodes(Message);
             }
             Server.Players.Message("&Pfrom {0}: {1}",
                 target.Name, Message);
             break;
         case "ac":
             Chat.SendAdmin(target, Message);
             break;
         case "st":
         case "staff":
             Chat.SendStaff(target, Message);
             break;
         case "i":
         case "impersonate":
         case "msg":
         case "message":
         case "m":
             Server.Message("{0}&S&F: {1}",
                               target.ClassyName, Message);
             break;
         case "leave":
         case "disconnect":
         case "gtfo":
             Server.Players.Message("&SPlayer {0}&S left the server.",
                 target.ClassyName);
             break;
         default: player.Message("Invalid option. Please choose st, ac, pm, message or leave");
             break;
     }
 }
Ejemplo n.º 6
1
 public Alice(Player player_)
 {
     player = player_;
     myBot = new AIMLbot.Bot();
     myUser = new User(player.Name, myBot);//y wont u set my name
     Initialize();
 }
Ejemplo n.º 7
1
        public FeedData( Block _textType, Vector3I _pos, Bitmap Image, World world, Direction direction_, Player player_ )
        {
            direction = direction_;
            Blocks = new ConcurrentDictionary<string, Vector3I>();
            Init( Image, world );
            Pos = _pos;
            textType = ( byte )_textType;
            bgType = ( byte )Block.Air;
            FeedData.AddMessages();
            MessageCount = 0;
            Sentence = FeedData.Messages[MessageCount];
            Id = System.Threading.Interlocked.Increment( ref feedCounter );
            player = player_;
            NormalBrush brush = new NormalBrush( Block.Wood );
            DrawOperation Operation = new CuboidWireframeDrawOperation( player );
            Operation.AnnounceCompletion = false;
            Operation.Brush = brush;
            Operation.Context = BlockChangeContext.Drawn;

            if ( !Operation.Prepare( new Vector3I[] { StartPos, FinishPos } ) ) {
                throw new Exception( "Unable to cubw frame." );
            }

            Operation.Begin();
            AddFeedToList( this, world );

            Start();
        }
Ejemplo n.º 8
1
 public BlockUpdate( Player _origin, int _x, int _y, int _h, byte _type ) {
     origin = _origin;
     x = _x;
     y = _y;
     h = _h;
     type = _type;
 }
        public static void SetParametrization(Player p, Command cmd)
        {
            string strFunc = cmd.Next();
            if (string.IsNullOrWhiteSpace(strFunc))
            {
                p.Message("Error: empty parametrization expression");
                return;
            }
            if (strFunc.Length < 3)
            {
                p.Message("Error: expression is too short (should be like x=f(t,u,v))");
                return;
            }

            strFunc = strFunc.ToLower();

            try
            {
                string coordVar = SimpleParser.PreparseAssignment(ref strFunc);
                CheckCoordVar(coordVar);

                Expression expression = SimpleParser.Parse(strFunc, new string[] { "t", "u", "v" });

                p.Message("Expression parsed as " + coordVar + "=" + expression.Print());

                GetPlayerParametrizationCoordsStorage(p)[VarNameToIdx(coordVar[0])] = expression;
            }
            catch (Exception e)
            {
                p.Message("Error: "+e.Message);
            }
        }
Ejemplo n.º 10
1
        static void SayHandler(Player player, CommandReader cmd)
        {
            if (player.Info.IsMuted)
            {
                player.MessageMuted();
                return;
            }

            if (player.DetectChatSpam()) return;

            if (player.Can(Permission.Say))
            {
                string msg = cmd.NextAll().Trim();
                if (msg.Length > 0)
                {
                    Chat.SendSay(player, msg);
                }
                else
                {
                    CdSay.PrintUsage(player);
                }
            }
            else
            {
                player.MessageNoAccess(Permission.Say);
            }
        }
Ejemplo n.º 11
1
        void DoZone( Player player, Command cmd ) {
            if( !player.Can( Permissions.SetSpawn ) ) {
                world.NoAccessMessage( player );
                return;
            }

            string name = cmd.Next();
            if( name == null ) {
                player.Message( "No zone name specified. See " + Color.Help + "/help zone" );
                return;
            }
            if( !Player.IsValidName( name ) ) {
                player.Message( "\"" + name + "\" is not a valid zone name" );
                return;
            }
            Zone zone = new Zone();
            zone.name = name;

            string property = cmd.Next();
            if( property == null ) {
                player.Message( "No zone rank/whitelist/blacklist specified. See " + Color.Help + "/help zone" );
                return;
            }
            PlayerClass minRank = world.classes.ParseClass( property );
            
            if( minRank != null ) {
                zone.buildRank = minRank.rank;
                player.tag = zone;
                player.marksExpected = 2;
                player.marks.Clear();
                player.markCount = 0;
                player.selectionCallback = MakeZone;
            }
        }
Ejemplo n.º 12
1
        static void PayHandler(Player player, Command cmd)
        {
            string targetName = cmd.Next();
            string money = cmd.Next();
            int amount;

            if (money == null)
            {
                player.Message("&ePlease select the amount of bits you wish to send.");
                return;
            }

            Player target = Server.FindPlayerOrPrintMatches(player, targetName, false, true);
            if (target == null)
            {
                player.Message("&ePlease select a player to pay bits towards.");
                return;
            }

            if (!int.TryParse(money, out amount))
            {
                player.Message("&ePlease select from a whole number.");
                return;
            }

            PayHandler(player, new Command("/economy pay " + target + " " + money));
        }
Ejemplo n.º 13
1
 public BlockUpdate( Player origin, short x, short y, short z, Block blockType ) {
     Origin = origin;
     X = x;
     Y = y;
     Z = z;
     BlockType = blockType;
 }
Ejemplo n.º 14
1
 internal static void CModeWater(Player player, Command cmd)
 {
     if (!player.Can(Permissions.ControlPhysics))
     {
         player.NoAccessMessage(Permissions.ControlPhysics);
         return;
     }
     string blockpar = cmd.Next();
     string wmt = "";
     int BlockAddr = -1;
     try { BlockAddr = Convert.ToInt32(blockpar); }
     catch
     {
         player.Message("Incorrect parameter!"); return;
     }
     if (BlockAddr < 3 && BlockAddr >= 0)
     {
         player.world.map.modeWater = BlockAddr;
         switch (BlockAddr)
         {
             case 0: wmt = "'none'"; break;
             case 1: wmt = "'infinite'"; break;
             case 2: wmt = "'finite'"; break;
         }
         player.Message("Water mode set to " + wmt + ".");
     }
 }
Ejemplo n.º 15
1
        protected FuncDrawOperation(Player player, Command cmd)
            : base(player)
        {
            string strFunc = cmd.Next();
            if (string.IsNullOrWhiteSpace(strFunc))
            {
                player.Message("&WEmpty function expression");
                return;
            }
            if (strFunc.Length < 3)
            {
                player.Message("&WExpression is too short (should be like z=f(x,y))");
                return;
            }

            strFunc = strFunc.ToLower();

            _vaxis = GetAxis(SimpleParser.PreparseAssignment(ref strFunc));

            _expression = SimpleParser.Parse(strFunc, GetVarArray(_vaxis));

            Player.Message("Expression parsed as "+_expression.Print());
            string scalingStr=cmd.Next();
            _scaler = new Scaler(scalingStr);
        }
Ejemplo n.º 16
1
 public static World FindMainWorld( Player player ) {
     World rankMain = player.Info.Rank.MainWorld;
     if( rankMain != null && player.CanJoin( rankMain ) ) {
         return rankMain;
     } else {
         return MainWorld;
     }
 }
Ejemplo n.º 17
1
 internal static void CancelDraw( Player player, Command command )
 {
     if( player.marksExpected > 0 ) {
         player.marksExpected = 0;
     } else {
         player.Message( "There is currently nothing to cancel." );
     }
 }
Ejemplo n.º 18
1
 public static bool PlayerBlowUpCheck( Player player )
 {
     if ( !Failed.Contains( player ) ) {
         Failed.Add( player );
         return true;
     }
     return false;
 }
Ejemplo n.º 19
1
 public void PrintUsage( Player player ) {
     if( player == null ) throw new ArgumentNullException( "player" );
     if( Usage != null ) {
         player.Message( "Usage: &H{0}", Usage );
     } else {
         player.Message( "Usage: &H/{0}", Name );
     }
 }
Ejemplo n.º 20
1
 public bool Call( Player player, Command cmd, bool raiseEvent ) {
     if( player == null ) throw new ArgumentNullException( "player" );
     if( cmd == null ) throw new ArgumentNullException( "cmd" );
     if( raiseEvent && CommandManager.RaiseCommandCallingEvent( cmd, this, player ) ) return false;
     Handler( player, cmd );
     if( raiseEvent ) CommandManager.RaiseCommandCalledEvent( cmd, this, player );
     return true;
 }
Ejemplo n.º 21
1
 void Paint( Player player, Command cmd ) {
     player.replaceMode = !player.replaceMode;
     if( player.replaceMode ){
         player.Message( "Replacement mode: ON" );
     } else {
         player.Message( "Replacement mode: OFF" );
     }
 }
Ejemplo n.º 22
1
 public static Packet MakeHandshakePacket( Player player ) {
     PacketWriter pw = new PacketWriter( (uint)OutputCodes.Handshake );
     pw.Write( (byte)Config.ProtocolVersion );
     pw.Write( Config.ServerName );
     pw.Write( Config.MOTD );
     pw.Write( player.GetPlayerClassCode() );
     return pw.GetPacket();
 }
Ejemplo n.º 23
1
 public static Expression[] GetPlayerParametrizationCoordsStorage( Player p )
 {
     Object o;
     if ( !p.PublicAuxStateObjects.TryGetValue( CoordsStorageName, out o ) ) {
         o = new Expression[3];
         p.PublicAuxStateObjects.Add( CoordsStorageName, o );
     }
     return ( Expression[] )o;
 }
Ejemplo n.º 24
1
 /// <summary> Creates a new SetBlockServer (0x06) packet. </summary>
 /// <param name="coords"> Coordinates of the block. </param>
 /// <param name="type"> Block type to set at given coordinates. </param>
 /// <param name="player"> Player packet is being sent to, used to get fallback block </param>
 public static Packet MakeSetBlock( Vector3I coords, Block type, Player player ) {
     Packet packet = new Packet( OpCode.SetBlockServer );
     //Logger.Log(LogType.Debug, "Send: MakeSetBlock({0})({1})", coords, type);
     ToNetOrder( (short)coords.X, packet.Bytes, 1 );
     ToNetOrder( (short)coords.Z, packet.Bytes, 3 );
     ToNetOrder( (short)coords.Y, packet.Bytes, 5 );
     packet.Bytes[7] = (byte)player.getFallback(type);
     return packet;
 }
Ejemplo n.º 25
1
 public static World FindMainWorld( Player player ) {
     World rankMain = player.Info.Rank.MainWorld;
     if ((player.Info.TimesVisited == 1 || player.Info.HasRTR == false) && FindWorldExact("Tutorial") != null) return FindWorldOrPrintMatches(player, "Tutorial");
     if( rankMain != null && player.CanJoin( rankMain ) && player.Info.JoinOnRankWorld == true ) {
         return rankMain;
     } else {
         return MainWorld;
     }
 }
Ejemplo n.º 26
0
 public static double[][] GetPlayerParametrizationParamsStorage( Player p )
 {
     Object o;
     if ( !p.PublicAuxStateObjects.TryGetValue( ParamsStorageName, out o ) ) {
         o = new double[3][];
         p.PublicAuxStateObjects.Add( ParamsStorageName, o );
     }
     return ( double[][] )o;
 }
Ejemplo n.º 27
0
 public PhysicsBlock(short x, short y, short z, Block type, Player player)
 {
     this.player = player;
     this.x = x;
     this.y = y;
     this.z = z;
     this.type = type;
     this.startTime = DateTime.Now;
 }
Ejemplo n.º 28
0
        Direction direction; //direction of the blocks (x++-- ect)

        //instance
        public FontHandler ( Block textColor, Vector3I[] Marks, Player p, Direction dir ) {
            direction = dir;
            blockCount = 0;
            player = p;
            PixelData.X = Marks[0].X;
            PixelData.Y = Marks[0].Y;
            PixelData.Z = Marks[0].Z;
            PixelData.BlockColor = textColor;
            undoState = player.DrawBegin( null );
        }
Ejemplo n.º 29
0
 void Lava( Player player, Command cmd ) {
     if( player.mode == BlockPlacementMode.Lava ) {
         player.mode = BlockPlacementMode.Normal;
         player.Message( "Lava: OFF." );
     } else if( player.Can( Permissions.PlaceWater ) ) {
         player.mode = BlockPlacementMode.Lava;
         player.Message( "Lava: ON. Red blocks are replaced with lava." );
     } else {
         world.NoAccessMessage( player );
     }
 }
Ejemplo n.º 30
0
 void Water( Player player, Command cmd ) {
     if( player.mode == BlockPlacementMode.Water ) {
         player.mode = BlockPlacementMode.Normal;
         player.Message( "Water: OFF" );
     } else if( player.Can( Permissions.PlaceWater ) ) {
         player.mode = BlockPlacementMode.Water;
         player.Message( "Water: ON. Blue blocks are replaced with water." );
     } else {
         world.NoAccessMessage( player );
     }
 }
Ejemplo n.º 31
0
        public Map AcceptPlayer( [NotNull] Player player, bool announce ) {
            if( player == null ) throw new ArgumentNullException( "player" );

            lock( SyncRoot ) {
                if( IsFull ) {
                    if( player.Info.Rank.ReservedSlot ) {
                        Player idlestPlayer = Players.Where( p => p.Info.Rank.IdleKickTimer != 0 )
                                                     .OrderBy( p => p.LastActiveTime )
                                                     .FirstOrDefault();
                        if( idlestPlayer != null ) {
                            idlestPlayer.Kick( Player.Console, "Auto-kicked to make room (idle).",
                                               LeaveReason.IdleKick, false, false, false );

                            Server.Players
                                  .CanSee( player )
                                  .Message( "&SPlayer {0}&S was auto-kicked to make room for {1}",
                                            idlestPlayer.ClassyName, player.ClassyName );
                            Server.Players
                                  .CantSee( player )
                                  .Message( "{0}&S was kicked for being idle for {1} min",
                                            player.ClassyName, player.Info.Rank.IdleKickTimer );
                        } else {
                            return null;
                        }
                    } else {
                        return null;
                    }
                }

                if( playerIndex.ContainsKey( player.Name.ToLower() ) ) {
                    Logger.Log( LogType.Error,
                                "This world already contains the player by name ({0}). " +
                                "Some sort of state corruption must have occured.",
                                player.Name );
                    playerIndex.Remove( player.Name.ToLower() );
                }

                playerIndex.Add( player.Name.ToLower(), player );

                // load the map, if it's not yet loaded
                IsPendingMapUnload = false;
                Map = LoadMap();

                if( ConfigKey.BackupOnJoin.Enabled() && (Map.HasChangedSinceBackup || !ConfigKey.BackupOnlyWhenChanged.Enabled()) ) {
                    string backupFileName = String.Format( JoinBackupFormat,
                                                           Name, DateTime.Now, player.Name ); // localized
                    Map.SaveBackup( MapFileName,
                                    Path.Combine( Paths.BackupPath, backupFileName ) );
                }

                UpdatePlayerList();

                if (!IsRealm && announce && ConfigKey.ShowJoinedWorldMessages.Enabled())
                {
                    Server.Players.CanSee(player)
                                  .Message("&SPlayer {0}&S joined world {1}",
                                            player.ClassyName, ClassyName);

                }

                //realm joining announcer
                if (IsRealm && announce && ConfigKey.ShowJoinedWorldMessages.Enabled())
                {
                    Server.Players.CanSee(player)
                                  .Message("&SPlayer {0}&S joined realm {1}",
                                            player.ClassyName, ClassyName);
                }

                if (IsRealm)
                {
                    Logger.Log(LogType.ChangedWorld,
                    "Player {0} joined realm {1}.",
                    player.Name, Name);
                }

                if (!IsRealm)
                {
                    Logger.Log(LogType.ChangedWorld,
                    "Player {0} joined world {1}.",
                    player.Name, Name);
                }

                if( IsLocked ) {
                    player.Message( "&WThis map is currently locked (read-only)." );
                }

                if( player.Info.IsHidden ) {
                    player.Message( "&8Reminder: You are still hidden." );
                }

                return Map;
            }
        }
Ejemplo n.º 32
0
 /// <summary> Counts only the players who are not hidden from a given observer. </summary>
 public int CountVisiblePlayers( [NotNull] Player observer ) {
     if( observer == null ) throw new ArgumentNullException( "observer" );
     return Players.Count( observer.CanSee );
 }