更新
This commit is contained in:
parent
6f34cbc2e0
commit
2242720ded
@ -11,7 +11,7 @@
|
|||||||
<inspection_tool class="AlibabaConstantFieldShouldBeUpperCase" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
<inspection_tool class="AlibabaConstantFieldShouldBeUpperCase" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
||||||
<inspection_tool class="AlibabaEnumConstantsMustHaveComment" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
<inspection_tool class="AlibabaEnumConstantsMustHaveComment" enabled="false" level="CRITICAL" enabled_by_default="false" />
|
||||||
<inspection_tool class="AlibabaUndefineMagicConstant" enabled="false" level="MAJOR" enabled_by_default="false" />
|
<inspection_tool class="AlibabaUndefineMagicConstant" enabled="false" level="MAJOR" enabled_by_default="false" />
|
||||||
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
|
<inspection_tool class="JavaDoc" enabled="false" level="WARNING" enabled_by_default="false">
|
||||||
<option name="TOP_LEVEL_CLASS_OPTIONS">
|
<option name="TOP_LEVEL_CLASS_OPTIONS">
|
||||||
<value>
|
<value>
|
||||||
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
|
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
|
||||||
@ -47,5 +47,17 @@
|
|||||||
<option name="processLiterals" value="true" />
|
<option name="processLiterals" value="true" />
|
||||||
<option name="processComments" value="true" />
|
<option name="processComments" value="true" />
|
||||||
</inspection_tool>
|
</inspection_tool>
|
||||||
|
<inspection_tool class="unused" enabled="false" level="WARNING" enabled_by_default="false">
|
||||||
|
<option name="LOCAL_VARIABLE" value="true" />
|
||||||
|
<option name="FIELD" value="true" />
|
||||||
|
<option name="METHOD" value="true" />
|
||||||
|
<option name="CLASS" value="true" />
|
||||||
|
<option name="PARAMETER" value="true" />
|
||||||
|
<option name="REPORT_PARAMETER_FOR_PUBLIC_METHODS" value="true" />
|
||||||
|
<option name="ADD_MAINS_TO_ENTRIES" value="true" />
|
||||||
|
<option name="ADD_APPLET_TO_ENTRIES" value="true" />
|
||||||
|
<option name="ADD_SERVLET_TO_ENTRIES" value="true" />
|
||||||
|
<option name="ADD_NONJAVA_TO_ENTRIES" value="true" />
|
||||||
|
</inspection_tool>
|
||||||
</profile>
|
</profile>
|
||||||
</component>
|
</component>
|
@ -1,13 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="Maven: org.projectlombok:lombok:1.16.20">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.16.20/lombok-1.16.20.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.16.20/lombok-1.16.20-javadoc.jar!/" />
|
|
||||||
</JAVADOC>
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.16.20/lombok-1.16.20-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</component>
|
|
29
src/main/java/com/ilummc/tlib/annotations/TConfig.java
Normal file
29
src/main/java/com/ilummc/tlib/annotations/TConfig.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.ilummc.tlib.annotations;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
|
|
||||||
|
import com.ilummc.tlib.util.Ref;
|
||||||
|
|
||||||
|
@Target(ElementType.TYPE)
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface TConfig {
|
||||||
|
|
||||||
|
String name() default "config.yml";
|
||||||
|
|
||||||
|
boolean fromJar() default false;
|
||||||
|
|
||||||
|
boolean saveOnExit() default false;
|
||||||
|
|
||||||
|
boolean readOnly() default true;
|
||||||
|
|
||||||
|
String charset() default "UTF-8";
|
||||||
|
|
||||||
|
boolean listenChanges() default false;
|
||||||
|
|
||||||
|
int excludeModifiers() default Modifier.STATIC | Modifier.TRANSIENT | Ref.ACC_SYNTHETIC | Ref.ACC_BRIDGE;
|
||||||
|
|
||||||
|
}
|
11
src/main/java/com/ilummc/tlib/annotations/TLocalePlugin.java
Normal file
11
src/main/java/com/ilummc/tlib/annotations/TLocalePlugin.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package com.ilummc.tlib.annotations;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
@Target(ElementType.TYPE)
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface TLocalePlugin {
|
||||||
|
}
|
@ -56,7 +56,7 @@ public class TConfigInjector {
|
|||||||
if (!file.exists()) if (config.fromJar()) plugin.saveResource(config.name(), true);
|
if (!file.exists()) if (config.fromJar()) plugin.saveResource(config.name(), true);
|
||||||
else saveConfig(plugin, clazz.newInstance());
|
else saveConfig(plugin, clazz.newInstance());
|
||||||
Object obj = unserialize(plugin, clazz);
|
Object obj = unserialize(plugin, clazz);
|
||||||
if (!config.readOnly()) saveConfig(plugin, obj);
|
if (config.readOnly()) saveConfig(plugin, obj);
|
||||||
return obj;
|
return obj;
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
TLocale.Logger.warn("CONFIG.LOAD-FAIL-NO-ANNOTATION", plugin.toString(), clazz.getSimpleName());
|
TLocale.Logger.warn("CONFIG.LOAD-FAIL-NO-ANNOTATION", plugin.toString(), clazz.getSimpleName());
|
||||||
@ -73,7 +73,7 @@ public class TConfigInjector {
|
|||||||
File file = new File(plugin.getDataFolder(), config.name());
|
File file = new File(plugin.getDataFolder(), config.name());
|
||||||
Map<String, Object> map = ConfigUtils.confToMap(ConfigUtils.loadYaml(plugin, file));
|
Map<String, Object> map = ConfigUtils.confToMap(ConfigUtils.loadYaml(plugin, file));
|
||||||
Object obj = ConfigUtils.mapToObj(map, object);
|
Object obj = ConfigUtils.mapToObj(map, object);
|
||||||
if (!config.readOnly()) saveConfig(plugin, obj);
|
if (config.readOnly()) saveConfig(plugin, obj);
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
TLocale.Logger.warn("CONFIG.LOAD-FAIL-NO-ANNOTATION", plugin.toString(), object.getClass().getSimpleName());
|
TLocale.Logger.warn("CONFIG.LOAD-FAIL-NO-ANNOTATION", plugin.toString(), object.getClass().getSimpleName());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -0,0 +1,69 @@
|
|||||||
|
package com.ilummc.tlib.resources.type;
|
||||||
|
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import com.ilummc.tlib.resources.TLocaleSendable;
|
||||||
|
import me.skymc.taboolib.sound.SoundPack;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||||
|
import org.bukkit.configuration.serialization.SerializableAs;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import javax.annotation.concurrent.Immutable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author sky
|
||||||
|
* @Since 2018-05-06 14:35
|
||||||
|
*/
|
||||||
|
@Immutable
|
||||||
|
@SerializableAs("ACTION")
|
||||||
|
public class TLocaleSound implements TLocaleSendable, ConfigurationSerializable {
|
||||||
|
|
||||||
|
private final List<SoundPack> soundPacks;
|
||||||
|
|
||||||
|
public TLocaleSound(List<SoundPack> soundPacks) {
|
||||||
|
this.soundPacks = soundPacks;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendTo(CommandSender sender, String... args) {
|
||||||
|
if (sender instanceof Player) {
|
||||||
|
soundPacks.forEach(x -> x.play((Player) sender));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String asString(String... args) {
|
||||||
|
return toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "soundPacks=" + "TLocaleSound{" + soundPacks + '}';
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> serialize() {
|
||||||
|
Map<String, Object> map = Maps.newHashMap();
|
||||||
|
if (soundPacks.size() == 1) {
|
||||||
|
map.put("sounds", soundPacks.get(0).toString());
|
||||||
|
} else if (soundPacks.size() > 1) {
|
||||||
|
map.put("sounds", soundPacks.stream().map(SoundPack::toString).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TLocaleSound valueOf(Map<String, Object> map) {
|
||||||
|
List<SoundPack> soundPacks = new ArrayList<>();
|
||||||
|
Object sounds = map.containsKey("sounds") ? map.get("sounds") : map.getOrDefault("sound", "");
|
||||||
|
if (sounds instanceof List) {
|
||||||
|
soundPacks = ((List<String>) sounds).stream().map(SoundPack::new).collect(Collectors.toList());
|
||||||
|
} else {
|
||||||
|
soundPacks.add(new SoundPack(sounds.toString()));
|
||||||
|
}
|
||||||
|
return new TLocaleSound(soundPacks);
|
||||||
|
}
|
||||||
|
}
|
9
src/main/resources/lang/internal.yml
Normal file
9
src/main/resources/lang/internal.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
TRY-LOADING-LANG: '插件 {0} 尝试加载 {1} 作为语言文件'
|
||||||
|
SUCCESS-LOADING-LANG-NORMAL: '成功加载 {0} 插件的 {1} 语言文件, 共 {2} 项'
|
||||||
|
SUCCESS-LOADING-LANG-UPDATE: '成功加载 {0} 插件的 {1} 语言文件, 共 {2} 项, 及 {3} 项新条目'
|
||||||
|
ERROR-LOADING-LANG: '加载 {0} 插件的语言文件时发生异常:{1}'
|
||||||
|
RELOADING-LANG: '正在重新载入 {0} 插件的语言文件'
|
||||||
|
FETCH-LOCALE-ERROR: '语言文件获取失败:{0}'
|
||||||
|
SEND-LOCALE-ERROR: '语言文件发送失败:{0}'
|
||||||
|
LOCALE-ERROR-REASON: '原因:{0}'
|
||||||
|
MISSING-ARGUMENT: '语言文本含有没有找到的参数 {0}'
|
Loading…
Reference in New Issue
Block a user