163 lines
4.9 KiB
Java
163 lines
4.9 KiB
Java
package me.feusalamander.vmessage;
|
|
|
|
import com.moandjiezana.toml.Toml;
|
|
|
|
import java.io.File;
|
|
import java.io.InputStream;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
import java.util.List;
|
|
import java.util.Objects;
|
|
|
|
public final class Configuration {
|
|
private String joinFormat;
|
|
private String leaveFormat;
|
|
private String kickFormat;
|
|
private String changeFormat;
|
|
private boolean joinEnabled;
|
|
private boolean leaveEnabled;
|
|
private boolean kickEnabled;
|
|
private boolean changeEnabled;
|
|
private boolean minimessage;
|
|
private Toml config;
|
|
private static File file;
|
|
private List<String> joincmd;
|
|
private List<String> leavecmd;
|
|
private List<String> kickcmd;
|
|
private List<String> changecmd;
|
|
private String custom1;
|
|
private String custom2;
|
|
private Toml aliases;
|
|
|
|
Configuration(Toml config) {
|
|
joinFormat = config.getString("Join.format", "");
|
|
leaveFormat = config.getString("Leave.format", "");
|
|
kickFormat = config.getString("Kick.format", "");
|
|
changeFormat = config.getString("Server-change.format", "");
|
|
|
|
joinEnabled = config.getBoolean("Join.enabled", false);
|
|
leaveEnabled = config.getBoolean("Leave.enabled", false);
|
|
kickEnabled = config.getBoolean("Kick.enabled", false);
|
|
changeEnabled = config.getBoolean("Server-change.enabled", false);
|
|
|
|
aliases = config.getTable("Aliases");
|
|
|
|
joincmd = config.getList("Join.commands");
|
|
leavecmd = config.getList("Leave.commands");
|
|
kickcmd = config.getList("Kick.commands");
|
|
changecmd = config.getList("Server-change.commands");
|
|
minimessage = config.getBoolean("Message-format.minimessage");
|
|
|
|
custom1 = config.getString("Custom-Meta.custom1", "");
|
|
custom2 = config.getString("Custom-Meta.custom2", "");
|
|
this.config = config;
|
|
}
|
|
|
|
static Configuration load(Path dataDirectory) {
|
|
Path f = createConfig(dataDirectory);
|
|
if (f != null) {
|
|
file = f.toFile();
|
|
Toml config = new Toml().read(file);
|
|
return new Configuration(config);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
private static Path createConfig(Path dataDirectory){
|
|
try {
|
|
if (Files.notExists(dataDirectory)){
|
|
Files.createDirectory(dataDirectory);
|
|
}
|
|
Path f = dataDirectory.resolve("config.toml");
|
|
if (Files.notExists(f)){
|
|
try (InputStream stream = Configuration.class.getResourceAsStream("/config.toml")) {
|
|
Files.copy(Objects.requireNonNull(stream), f);
|
|
}
|
|
}
|
|
return f;
|
|
} catch(Exception e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public String getJoinFormat() {
|
|
return this.joinFormat;
|
|
}
|
|
|
|
public String getLeaveFormat() {
|
|
return this.leaveFormat;
|
|
}
|
|
public String getKickFormat() {
|
|
return this.kickFormat;
|
|
}
|
|
|
|
public String getChangeFormat() {
|
|
return this.changeFormat;
|
|
}
|
|
|
|
public boolean isJoinEnabled() {
|
|
return this.joinEnabled;
|
|
}
|
|
|
|
public boolean isLeaveEnabled() {
|
|
return this.leaveEnabled;
|
|
}
|
|
public boolean isKickEnabled() {
|
|
return this.kickEnabled;
|
|
}
|
|
|
|
public boolean isChangeEnabled() {
|
|
return this.changeEnabled;
|
|
}
|
|
public boolean isMinimessageEnabled(){
|
|
return this.minimessage;
|
|
}
|
|
public List<String> getJoincmd(){
|
|
return this.joincmd;
|
|
}
|
|
public List<String> getLeavecmd(){
|
|
return this.leavecmd;
|
|
}
|
|
public List<String> getKickcmd(){
|
|
return this.kickcmd;
|
|
}
|
|
public List<String> getChangecmd(){
|
|
return this.changecmd;
|
|
}
|
|
public Toml getAliases() {
|
|
return aliases;
|
|
}
|
|
public String getCustom1() {
|
|
return this.custom1;
|
|
}
|
|
public String getCustom2() {
|
|
return this.custom2;
|
|
}
|
|
|
|
void reload(){
|
|
config = config.read(file);
|
|
this.joinFormat = config.getString("Join.format");
|
|
this.leaveFormat = config.getString("Leave.format");
|
|
this.kickFormat = config.getString("Kick.format");
|
|
this.changeFormat = config.getString("Server-change.format");
|
|
|
|
this.joinEnabled = config.getBoolean("Join.enabled");
|
|
this.leaveEnabled = config.getBoolean("Leave.enabled");
|
|
this.kickEnabled = config.getBoolean("Kick.enabled");
|
|
this.changeEnabled = config.getBoolean("Server-change.enabled");
|
|
|
|
this.aliases = config.getTable("Aliases");
|
|
|
|
this.joincmd = config.getList("Join.commands");
|
|
this.leavecmd = config.getList("Leave.commands");
|
|
this.kickcmd = config.getList("Kick.commands");
|
|
this.changecmd = config.getList("Server-change.commands");
|
|
|
|
this.minimessage = config.getBoolean("Message-format.minimessage");
|
|
|
|
this.custom1 = config.getString("Custom-Meta.custom1");
|
|
this.custom2 = config.getString("Custom-Meta.custom2");
|
|
}
|
|
}
|