mirror of
				https://e.coding.net/circlecloud/YumCore.git
				synced 2025-11-03 23:06:02 +00:00 
			
		
		
		
	@@ -34,6 +34,18 @@ public abstract class AbstractInjectConfig {
 | 
				
			|||||||
     *            配置区
 | 
					     *            配置区
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public void inject(final ConfigurationSection config) {
 | 
					    public void inject(final ConfigurationSection config) {
 | 
				
			||||||
 | 
					        inject(config, false);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 注入配置数据
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param config
 | 
				
			||||||
 | 
					     *            配置区
 | 
				
			||||||
 | 
					     * @param save
 | 
				
			||||||
 | 
					     *            是否为保存
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void inject(final ConfigurationSection config, final boolean save) {
 | 
				
			||||||
        if (config == null) {
 | 
					        if (config == null) {
 | 
				
			||||||
            Log.warning("尝试注入 ConfigurationSection 为 Null 的数据!");
 | 
					            Log.warning("尝试注入 ConfigurationSection 为 Null 的数据!");
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
@@ -49,10 +61,24 @@ public abstract class AbstractInjectConfig {
 | 
				
			|||||||
                path = node.value();
 | 
					                path = node.value();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            field.setAccessible(true);
 | 
					            field.setAccessible(true);
 | 
				
			||||||
            setField(path, field);
 | 
					            if (save) {
 | 
				
			||||||
 | 
					                setConfig(path, field);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                setField(path, field);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 自动化保存
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param config
 | 
				
			||||||
 | 
					     *            配置文件区
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void save(final ConfigurationSection config) {
 | 
				
			||||||
 | 
					        inject(config, true);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 添加默认值
 | 
					     * 添加默认值
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
@@ -156,7 +182,24 @@ public abstract class AbstractInjectConfig {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 通用解析流程
 | 
					     * 通用保存流程
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param path
 | 
				
			||||||
 | 
					     *            配置路径
 | 
				
			||||||
 | 
					     * @param field
 | 
				
			||||||
 | 
					     *            字段
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    protected void setConfig(final String path, final Field field) {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            config.set(path, field.get(this));
 | 
				
			||||||
 | 
					        } catch (IllegalArgumentException | IllegalAccessException e) {
 | 
				
			||||||
 | 
					            Log.w(INJECT_ERROR, e.getClass().getName(), e.getMessage());
 | 
				
			||||||
 | 
					            Log.debug(e);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 通用读取流程
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param path
 | 
					     * @param path
 | 
				
			||||||
     *            配置路径
 | 
					     *            配置路径
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,4 +44,12 @@ public abstract class InjectConfig extends AbstractInjectConfig {
 | 
				
			|||||||
        config.reload();
 | 
					        config.reload();
 | 
				
			||||||
        inject(config);
 | 
					        inject(config);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 自动化保存
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void save() {
 | 
				
			||||||
 | 
					        save(config);
 | 
				
			||||||
 | 
					        config.save();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user