ZNPCsPlus/plugin/src/main/java/lol/pyr/znpcsplus/config/MainConfig.java
2023-12-27 21:31:05 +05:30

76 lines
2.7 KiB
Java

package lol.pyr.znpcsplus.config;
import lol.pyr.znpcsplus.storage.NpcStorageType;
import space.arim.dazzleconf.annote.ConfComments;
import space.arim.dazzleconf.annote.ConfKey;
import space.arim.dazzleconf.annote.SubSection;
import static space.arim.dazzleconf.annote.ConfDefault.*;
public interface MainConfig {
@ConfKey("view-distance")
@ConfComments("How far away do you need to be from any NPC for it to disappear, measured in blocks")
@DefaultInteger(32)
int viewDistance();
@ConfKey("line-spacing")
@ConfComments("The height between hologram lines, measured in blocks")
@DefaultDouble(0.3D)
double lineSpacing();
@ConfKey("check-for-updates")
@ConfComments("Should the plugin check for available updates and notify admins about them?")
@DefaultBoolean(true)
boolean checkForUpdates();
@ConfKey("debug-enabled")
@ConfComments({
"Should debug mode be enabled?",
"This is used in development to test various things, you probably don't want to enable this"
})
@DefaultBoolean(false)
boolean debugEnabled();
@ConfKey("storage-type")
@ConfComments("The storage type to use. Available storage types: YAML, SQLITE, MYSQL")
@DefaultString("YAML")
NpcStorageType storageType();
@ConfKey("database-config")
@ConfComments("The database config. Only used if storage-type is MYSQL")
@SubSection
DatabaseConfig databaseConfig();
@ConfKey("disable-skin-fetcher-warnings")
@ConfComments("Set this to true if you don't want to be warned in the console when a skin fails to resolve")
@DefaultBoolean(false)
boolean disableSkinFetcherWarnings();
@ConfKey("auto-save-interval")
@ConfComments("How often to auto-save npcs, set this to -1 to disable. This value will only apply on restart")
@DefaultInteger(300)
int autoSaveInterval();
default boolean autoSaveEnabled() {
return autoSaveInterval() != -1;
}
@ConfKey("look-property-distance")
@ConfComments("How far should the look property work from in blocks")
@DefaultDouble(10)
double lookPropertyDistance();
@ConfKey("tab-hide-delay")
@ConfComments({
"The amount of time to wait before removing the npc from the player list (aka tab) in ticks",
"If you're on 1.19.2 or above changing this value will have almost no effect since npcs are hidden in tab",
"WARNING: Setting this value too low may cause issues with player npcs spawning"
})
@DefaultInteger(60)
int tabHideDelay();
@ConfKey("tab-display-name")
@ConfComments("The display name to use for npcs in the player list (aka tab)")
@DefaultString("ZNPC[{id}]")
String tabDisplayName();
}