public static void AddGuildToList( Guild g ) { if ( g == null ) { throw new ArgumentNullException( "guild" ); } List<Guild> gs = Cache.Guilds.ToList(); gs.Add( g ); Cache.Guilds = gs.ToArray(); }
public ExplodingBug( Player p ) { player = p; world = player.World; guild = GuildManager.PlayersGuild( player.Info ); end = player.Position.ToBlockCoords(); block = new Vector3I( end.X, end.Y, end.Z - 1 ); Started = true; task = Scheduler.NewBackgroundTask( t => StartAI() ).RunForever( TimeSpan.FromMilliseconds( 230 ) ); endTask = Scheduler.NewTask( t => Stop() ).RunOnce( TimeSpan.FromSeconds( 25 ) ); player.PublicAuxStateObjects.Add( "bug", this ); }
/// <summary> /// returns the kill score of an entire guild /// </summary> /// <param name="g">Guild in question</param> /// <returns>number of kills</returns> public static int GetGuildKillsTotal( Guild g ) { int Score = 0; foreach ( String s in PlayerKillScores ) { string p = s.Split( '$' )[0]; if ( g.Members.Contains( p ) ) { PlayerInfo temp = PlayerDB.FindPlayerInfoExact( p ); if ( temp != null ) { string t = GetPlayerScoreEntry( temp ); if ( t != null ) { Score += int.Parse( t.Split( '$' )[1] ); } } } } return Score; }
/// <summary> /// Creates a guild /// </summary> /// <param name="Name">Name of the guild</param> /// <param name="Tag">Tag of the guild</param> /// <param name="GuildMaster">Creator of the guild (player)</param> public static void CreateGuild( String Name, Player GuildMaster ) { //Run some checks //========================================================================== foreach ( Guild g1 in Cache.Guilds ) { if ( g1.Name.Equals( Name, StringComparison.OrdinalIgnoreCase ) ) { GuildMaster.Message( "&WError: Selected guild name already exists" ); return; } if ( CheckStringSimilarities( g1.Name, Name ) >= 80 ) { GuildMaster.Message( "&WError: Selected name is over 80% similar to another guild name \"{0}\"", g1.Name ); return; } } if ( PlayerHasGuild( GuildMaster.Info ) ) { GuildMaster.Message( "&WError: You are already in a guild. You can leave your guild by using /Guild Quit" ); return; } if ( Name.Length > 20 ) { GuildMaster.Message( "&WError: Guild name cannot exceed 20 characters" ); return; } int i = 0; foreach ( Char c in Name.ToCharArray() ) { if ( c == ' ' ) i++; } if ( i > 2 ) { GuildMaster.Message( "&WError: Guild name contains too many spaces (More than 2)" ); return; } Name = Color.StripColors( Name ); //========================================================================== Guild g = new Guild( Name, null, GuildMaster.Name ); g.Level = 0; g.XP = 0; g.PvP = false; AddGuildToList( g ); GuildMaster.Message( "Your guild \"{0}\" has been created, but is provisional. " + "You need to add 3 more members before your guild becomes active.\nAs the guild creator, " + "you are now the guild master and have full control of the guild", Name ); }
public Turret( Player p ) { player = p; world = p.World; guild = GuildManager.PlayersGuild( p.Info ); end = player.Position.ToBlockCoords(); Vector3I checkPos = new Vector3I( end.X, end.Y, end.Z - 2 ); Block b = world.Map.GetBlock( checkPos ); if ( Physics.BlockThrough( b ) ) { player.Message( "&WYou can only place a turret on the ground, not in the air" ); return; } blocks = new Vector3I[] { new Vector3I( end ), new Vector3I( end.X, end.Y, end.Z - 1 ), new Vector3I( end.X, end.Y, end.Z + 1 ) }; start = blocks[0]; BuildTurret(); task = Scheduler.NewBackgroundTask( t => StartAI() ).RunForever( TimeSpan.FromMilliseconds( 250 ) ); AddTurretToList(); lastTimeShot = DateTime.UtcNow; }
public static bool GuildHasPerk( Guild guild, Perk perk ) { return guild.AvailablePerks().Contains( perk ); }
/// <summary> /// Stops all running perks on the guild instance /// </summary> /// <param name="guild">Guild in question</param> public static void StopAllGuildPerks( Guild guild ) { Perk[] perks = guild.AvailablePerks().ToArray(); foreach ( Perk p in perks ) { p.StopPerk(); } }
public ExplodingBugPerk( Guild guild ) : base(guild) { }
protected Perk( Guild Guild ) { guild = Guild; Started = false; }
/// <summary> /// Construct this class, let the class know what guild it is working with /// </summary> /// <param name="g">The guild this perk is for</param> public TestPerk( Guild guild ) : base(guild) { }
public PvP_Perk( Guild guild ) : base(guild) { }
private TimeSpan start = new TimeSpan( 19, 0, 0 ); //7 o'clock #endregion Fields #region Constructors /// <summary> /// Construct this class, let the class know what guild it is working with /// </summary> /// <param name="g">The guild this perk is for</param> public DoubleXpPerk( Guild guild ) : base(guild) { }
public TurretPerk( Guild guild ) : base(guild) { }
/// <summary> /// Construct this class, let the class know what guild it is working with /// </summary> /// <param name="g">The guild this perk is for</param> public SlapAllPerk( Guild guild ) : base(guild) { start = new DateTime(); }
public static void RemoveGuildFile( Guild guild ) { try { string FileName = String.Format( "{0}/{1}.txt", Dir, guild.Name ); if ( File.Exists( FileName ) ) { File.Delete( FileName ); } } catch ( Exception e ) { Logger.Log( LogType.Error, "Could not delete guild file name: " + e.Message ); } }
/// <summary> /// Starts all running perks on the guild instance /// </summary> /// <param name="guild">Guild in question</param> public static void StartAllGuildPerks( Guild guild ) { lock ( guild.Perks ) { foreach ( Perk p in guild.AvailablePerks() ) { if ( !p.Started ) p.StartPerk(); } } }
public static bool IsPlayerAnAdmin( String Name, Guild g ) { if ( g.GuildMaster == Name ) return true; if ( g.Admins == null ) return false; if ( g.Admins.Contains( Name ) ) return true; return false; }
public static bool IsPlayerAnAdmin( Player player, Guild g ) { return IsPlayerAnAdmin( player.Name, g ); }
public static string GetGuildPvPTagColor( Guild guild ) { if ( guild.PvP ) return Color.Red; else return Color.Green; }
public static void LoadAllGuilds() { foreach ( string f in Directory.GetFiles( Dir ) ) { Guild g = new Guild(); try { String[] lines = File.ReadAllLines( f ); foreach ( String set in lines ) { String[] setting = set.Split( ':' ); if ( setting[0].Equals( "name" ) ) { g.Name = setting[1]; } if ( setting[0].Equals( "tag" ) ) { g.Tag = setting[1]; } if ( setting[0].Equals( "members" ) ) { string[] names = setting[1].Split( ',' ); List<String> l = new List<String>(); foreach ( string n in names ) { string nn = n; nn = n.Replace( ",", "" ).Trim(); if ( !string.IsNullOrWhiteSpace( nn ) || !string.IsNullOrEmpty( nn ) ) { l.Add( nn ); } } g.Members = l.ToArray(); } if ( setting[0].Equals( "admins" ) ) { string[] names = setting[1].Split( ',' ); List<String> l = new List<String>(); foreach ( string n in names ) { string nn = n; nn = n.Replace( ",", "" ).Trim(); if (!string.IsNullOrWhiteSpace(nn) || !string.IsNullOrEmpty( nn ) ) { l.Add( nn ); } } g.Admins = l.ToArray(); } if ( setting[0].Equals( "invitedmembers" ) ) { string[] names = setting[1].Split( ',' ); List<String> l = new List<String>(); foreach ( string n in names ) { string nn = n; nn = n.Replace( ",", "" ).Trim(); if ( !string.IsNullOrWhiteSpace( nn ) || !string.IsNullOrEmpty( nn ) ) { l.Add( nn ); } } g.PlayersInvited = l.ToArray(); } if ( setting[0].Equals( "guildmaster" ) ) { g.GuildMaster = setting[1]; } if ( setting[0].Equals( "open" ) ) { g.Open = bool.Parse( setting[1] ); } if ( setting[0].Equals( "level" ) ) { g.Level = int.Parse( setting[1] ); } if ( setting[0].Equals( "currentexp" ) ) { g.XP = float.Parse( setting[1] ); } if ( setting[0].Equals( "pvp" ) ) { g.PvP = Boolean.Parse( setting[1] ); } if ( g.Members == null ) g.Members = new string[] { }; if ( g.PlayersInvited == null ) g.PlayersInvited = new string[] { }; if ( g.Level == -1 ) g.Level = 0; if ( g.XP == -1 ) g.XP = 0; } } catch ( Exception e ) { Logger.LogToConsole( "Failed to load guild options!: " + e.Message ); } GuildManager.AddGuildToList( g ); } String path = "plugins/PlayerScores.txt"; try { if ( File.Exists( path ) ) { Cache.PlayerKillScores = File.ReadAllLines( path ); } Logger.LogToConsole( "Loaded player kill scores" ); } catch ( Exception e ) { Logger.LogToConsole( "Failed to load playerscores!: " + e.Message ); } }