egametang/ET · error

target select handler not inherit ITargetSelectHandler abstr

Error message

target select handler not inherit ITargetSelectHandler abstract class: {obj.GetType().FullName}

What it means

Error "target select handler not inherit ITargetSelectHandler abstract class: {obj.GetType().FullName}" thrown in egametang/ET.

Source

Thrown at Packages/cn.etetet.spell/Scripts/Model/Client/TargetSelectDispatcher.cs:63

        public void Awake()
        {
            HashSet<Type> types = CodeTypes.Instance.GetTypes(typeof (TargetSelectHandlerAttribute));
            
            foreach (Type type in types)
            {
                this.Register(type);
            }
        }
        
        private void Register(Type type)
        {
            object obj = Activator.CreateInstance(type);

            ITargetSelectHandler targetSelectHandler = obj as ITargetSelectHandler;
            if (targetSelectHandler == null)
            {
                throw new Exception($"target select handler not inherit ITargetSelectHandler abstract class: {obj.GetType().FullName}");
            }

            Type nodeType = targetSelectHandler.GetNodeType();
            this.handlers.TryAdd(nodeType, targetSelectHandler);
        }
        
        
        public ETTask<int> Handle(TargetSelector node, EntityRef<Unit> unit, SpellConfig spellConfig)
        {
            Type handlerType = node.GetType();
            while (handlerType != null)
            {
                if (this.handlers.TryGetValue(handlerType, out ITargetSelectHandler targetSelectHandler))
                {
                    return targetSelectHandler.Handle(node, unit, spellConfig);
                }

                handlerType = handlerType.BaseType;

View on GitHub (pinned to 5cab01f7a8)

Solutions

  1. 让该 handler 类继承 ITargetSelectHandler 抽象类
  2. 或从程序集中移除/排除这个非 handler 类

Example fix

public class MyTargetSelectHandler : ITargetSelectHandler { ... }

When it happens

Trigger: TargetSelectDispatcher 扫描到的 handler 类没有继承 ITargetSelectHandler 抽象基类

Common situations: See trigger scenarios.


AI-assisted analysis of egametang/ET@5cab01f7a8 (2026-08-13). Data as JSON: /api/errors/682cad2455ae717d. Report an issue: GitHub.