private static void GameObject_OnCreate(GameObject sender, EventArgs args) { try { if (!sender.IsValid) return; WardDetector(sender, args); var database = SpellDatabase.Database.FirstOrDefault(d => d.GameObject && d.SpellType != SpellType.Ward && (d.ObjectName != null ? d.Name == sender.Name && d.ObjectName == sender.BaseObjectName() : sender.Name.Contains(d.Name))); if (database != null) { if ((database.SpellType == SpellType.Spell && !Config.Menu.CheckboxValue("sTimer")) || (database.SpellType == SpellType.SummonerSpell && !Config.Menu.CheckboxValue("ssTimer")) || (database.SpellType == SpellType.Item && !Config.Menu.CheckboxValue("itemTimer")) || (database.SpellType == SpellType.Trap && !Config.Menu.CheckboxValue("trapTimer"))) return; var caster = sender.FIndCaster(database); Program.SpellList.Add(new Spell { SpellType = database.SpellType, Team = caster.IsAlly ? Team.Ally : caster.IsEnemy ? Team.Enemy : Team.None, Slot = database.Slot, DrawType = database.DrawType, Importance = database.Importance, Caster = caster, Object = sender, CastPosition = sender.Position, ChampionName = database.ChampionName != null ? database.ChampionName : caster.BaseSkinName, Name = database.Name, ObjectName = database.ObjectName, MenuCode = database.MenuCode, FullTime = database.EndTime, EndTime = database.EndTime + Utility.TickCount, NetworkID = sender.NetworkId, GameObject = database.GameObject, OnlyMe = database.OnlyMe, Teleport = database.Teleport, Color = database.Color, SpriteName = database.SpriteName, }); return; } } catch (Exception e) { e.ErrorMessage("ON_CREATE", sender.Name); } }