@@ -2453,6 +2453,44 @@ func (d *Dice) ApplyExtDefaultSettings() {
24532453 }
24542454 }
24552455
2456+ // 先绑定默认设置到扩展,确保后续激活逻辑能读取AutoActive等
2457+ // 遍历设置表,将其插入扩展信息
2458+ for k , v := range exts1 {
2459+ extInfo , exists := exts2 [k ]
2460+ if exists {
2461+ v .ExtItem = extInfo
2462+ v .Loaded = true
2463+ extInfo .DefaultSetting = v
2464+
2465+ // 为了避免锁问题,这里做一个新的map
2466+ m := map [string ]bool {}
2467+
2468+ // 将改扩展拥有的指令,塞入DisabledCommand
2469+ names := map [string ]bool {}
2470+ for _ , v := range extInfo .CmdMap {
2471+ names [v .Name ] = true
2472+ }
2473+ // 去掉无效指令
2474+ for k , v := range v .DisabledCommand {
2475+ if names [k ] {
2476+ m [k ] = v
2477+ }
2478+ }
2479+ // 塞入之前没有的指令
2480+ for k := range names {
2481+ if _ , exists := m [k ]; ! exists {
2482+ m [k ] = false // false 因为默认不禁用
2483+ }
2484+ }
2485+ v .DisabledCommand = m
2486+ } else {
2487+ // 需要吗?
2488+ // 也许需要, 模糊地感觉可能造成内存泄漏
2489+ // v.ExtItem = nil
2490+ v .Loaded = false
2491+ }
2492+ }
2493+
24562494 // 批量处理所有群组的扩展激活,使用ants池进行并发处理
24572495 if len (batchExtInfos ) > 0 {
24582496 // 收集所有群组信息
@@ -2495,43 +2533,6 @@ func (d *Dice) ApplyExtDefaultSettings() {
24952533 }
24962534 }
24972535
2498- // 遍历设置表,将其插入扩展信息
2499- for k , v := range exts1 {
2500- extInfo , exists := exts2 [k ]
2501- if exists {
2502- v .ExtItem = extInfo
2503- v .Loaded = true
2504- extInfo .DefaultSetting = v
2505-
2506- // 为了避免锁问题,这里做一个新的map
2507- m := map [string ]bool {}
2508-
2509- // 将改扩展拥有的指令,塞入DisabledCommand
2510- names := map [string ]bool {}
2511- for _ , v := range extInfo .CmdMap {
2512- names [v .Name ] = true
2513- }
2514- // 去掉无效指令
2515- for k , v := range v .DisabledCommand {
2516- if names [k ] {
2517- m [k ] = v
2518- }
2519- }
2520- // 塞入之前没有的指令
2521- for k := range names {
2522- if _ , exists := m [k ]; ! exists {
2523- m [k ] = false // false 因为默认不禁用
2524- }
2525- }
2526- v .DisabledCommand = m
2527- } else {
2528- // 需要吗?
2529- // 也许需要, 模糊地感觉可能造成内存泄漏
2530- // v.ExtItem = nil
2531- v .Loaded = false
2532- }
2533- }
2534-
25352536 // 不好分辨,直接标记
25362537 d .MarkModified ()
25372538}
0 commit comments