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); } }
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; } }
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 ); } } } }
public BlockUpdate( Player origin, Vector3I coord, Block blockType ) { Origin = origin; X = (short)coord.X; Y = (short)coord.Y; Z = (short)coord.Z; BlockType = blockType; }
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; } }
public Alice(Player player_) { player = player_; myBot = new AIMLbot.Bot(); myUser = new User(player.Name, myBot);//y wont u set my name Initialize(); }
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(); }
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); } }
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); } }
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; } }
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)); }
public BlockUpdate( Player origin, short x, short y, short z, Block blockType ) { Origin = origin; X = x; Y = y; Z = z; BlockType = blockType; }
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 + "."); } }
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); }
public static World FindMainWorld( Player player ) { World rankMain = player.Info.Rank.MainWorld; if( rankMain != null && player.CanJoin( rankMain ) ) { return rankMain; } else { return MainWorld; } }
internal static void CancelDraw( Player player, Command command ) { if( player.marksExpected > 0 ) { player.marksExpected = 0; } else { player.Message( "There is currently nothing to cancel." ); } }
public static bool PlayerBlowUpCheck( Player player ) { if ( !Failed.Contains( player ) ) { Failed.Add( player ); return true; } return false; }
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 ); } }
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; }
void Paint( Player player, Command cmd ) { player.replaceMode = !player.replaceMode; if( player.replaceMode ){ player.Message( "Replacement mode: ON" ); } else { player.Message( "Replacement mode: OFF" ); } }
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(); }
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; }
/// <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; }
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; } }
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; }
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; }
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 ); }
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 ); } }
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 ); } }
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; } }
/// <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 ); }