public override PropertyDescriptor GetOwnPropertyDescriptor(uint index) { if (index < Count) { var record = new UserRecord(script, this.history[(int)index]); return(new PropertyDescriptor(record, PropertyAttributes.FullAccess)); } return(new PropertyDescriptor(null, PropertyAttributes.Sealed)); }
public override PropertyDescriptor GetOwnPropertyDescriptor(uint index) { if (index < Count) { var ban = this.history.Bans[(int)index]; var banned = new UserRecord(script, this.history.Records.Find(s => s.Equals(ban))); return(new PropertyDescriptor(banned, PropertyAttributes.FullAccess)); } return(new PropertyDescriptor(null, PropertyAttributes.Sealed)); }
public override object Find(object a) { if (a is FunctionInstance func) { for (int i = 0; i < this.history.Records.Count; i++) { var record = new UserRecord(script, this.history.Records[i]); object ret = func.Call(Engine.Global, record); if (TypeConverter.ConvertTo <bool>(Engine, ret)) { return(record); } } } return(null); }
public void RemoveAll(object a) { if (a is FunctionInstance func) { for (int i = (Count - 1); i >= 0; i--) { var ban = this.history.Bans[i]; var record = new UserRecord(script, this.history.Records.Find((s) => s.Equals(ban))); object ret = func.Call(Engine.Global, record); if (TypeConverter.ConvertTo <bool>(Engine, ret)) { this.history.Bans.RemoveAt(i); } } } }
public override object Find(object a) { if (a is FunctionInstance) { var func = (FunctionInstance)a; for (int i = 0; i < this.history.Bans.Count; i++) { var ban = this.history.Bans[i]; var record = new UserRecord(script, this.history.Find((s) => s.Equals(ban))); object ret = func.Call(Engine.Global, record); if (TypeConverter.ConvertTo <bool>(Engine, ret)) { return(record); } } } return(null); }
public override Collection FindAll(object a) { if (a is FunctionInstance) { var func = (FunctionInstance)a; var list = new List(script); for (int i = 0; i < this.history.Count; i++) { var record = new UserRecord(script, this.history[i]); object ret = func.Call(Engine.Global, record); if (TypeConverter.ConvertTo <bool>(Engine, ret)) { list.Add(record); } } return(list); } return(null); }
public override int IndexOf(object a) { if (a is FunctionInstance) { var func = (FunctionInstance)a; for (int i = 0; i < this.history.Bans.Count; i++) { var ban = this.history.Bans[i]; var record = new UserRecord(script, this.history.Find((s) => s.Equals(ban))); object ret = func.Call(Engine.Global, record); if (TypeConverter.ConvertTo <bool>(Engine, ret)) { return(i); } } return(-1); } else if (a is User) { var user = (User)a; return(this.history.Bans.IndexOf(new UserId(script, user.Client.Guid, user.Client.ExternalIp))); } else if (a is UserId) { return(this.history.Bans.IndexOf((UserId)a)); } else if (a is UserRecord) { var record = (UserRecord)a; return(this.history.Bans.IndexOf(new UserId(script, record.Guid, record.ExternalIp))); } return(-1); }
public override Collection FindAll(object a) { if (a is FunctionInstance func) { var list = new List(script); for (int i = 0; i < this.history.Bans.Count; i++) { var ban = this.history.Bans[i]; var record = new UserRecord(script, this.history.Records.Find((s) => s.Equals(ban))); object ret = func.Call(Engine.Global, record); if (TypeConverter.ConvertTo <bool>(Engine, ret)) { list.Add(record); } } return(list); } return(null); }
public bool Remove(object a) { if (a is User) { return(this.history.Bans.Remove(((User)a).Client.ClientId)); } else if (a is UserId) { return(this.history.Bans.Remove((UserId)a)); } else if (a is UserRecord) { return(this.history.Bans.Remove(((UserRecord)a).Record.ClientId)); } else if (a is FunctionInstance) { var func = (FunctionInstance)a; for (int i = (Count - 1); i >= 0; i--) { var ban = this.history.Bans[i]; var record = new UserRecord(script, this.history.Find((s) => s.Equals(ban))); object ret = func.Call(Engine.Global, record); if (TypeConverter.ConvertTo <bool>(Engine, ret)) { return(this.history.Bans.RemoveAt(i)); } } } return(false); }