9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-22 16:39:36 +00:00
Files
Custom-Crops/src/main/java/net/momirealms/customcrops/CommandHandler.java
2022-05-22 14:52:30 +08:00

98 lines
5.0 KiB
Java

package net.momirealms.customcrops;
import net.momirealms.customcrops.DataManager.BackUp;
import net.momirealms.customcrops.DataManager.CropManager;
import net.momirealms.customcrops.DataManager.SprinklerManager;
import net.momirealms.customcrops.Integrations.KingdomsXIntegrations;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.Objects;
public class CommandHandler implements CommandExecutor {
@Override
@ParametersAreNonnullByDefault
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(sender instanceof Player && !sender.isOp()){
return false;
}
FileConfiguration config = CustomCrops.instance.getConfig();
//重载插件
if(args[0].equalsIgnoreCase("reload")){
CustomCrops.loadConfig();
if(sender instanceof Player){
MessageManager.playerMessage(config.getString("messages.prefix") + config.getString("messages.reload"), (Player) sender);
}else {
MessageManager.consoleMessage(config.getString("messages.prefix") + config.getString("messages.reload"), Bukkit.getConsoleSender());
}
}
//设置季节
if(args[0].equalsIgnoreCase("setseason")){
if(config.getBoolean("enable-season")){
config.set("current-season", args[1]);
if(sender instanceof Player){
MessageManager.playerMessage(config.getString("messages.prefix") + Objects.requireNonNull(config.getString("messages.season-set")).replace("{Season}",args[1])
.replace("spring", Objects.requireNonNull(config.getString("messages.spring")))
.replace("summer", Objects.requireNonNull(config.getString("messages.summer")))
.replace("autumn", Objects.requireNonNull(config.getString("messages.autumn")))
.replace("winter", Objects.requireNonNull(config.getString("messages.winter"))), (Player) sender);
}else {
MessageManager.consoleMessage(config.getString("messages.prefix") + Objects.requireNonNull(config.getString("messages.season-set")).replace("{Season}",args[1])
.replace("spring", Objects.requireNonNull(config.getString("messages.spring")))
.replace("summer", Objects.requireNonNull(config.getString("messages.summer")))
.replace("autumn", Objects.requireNonNull(config.getString("messages.autumn")))
.replace("winter", Objects.requireNonNull(config.getString("messages.winter"))), Bukkit.getConsoleSender());
}
CustomCrops.instance.saveConfig();
}else{
if(sender instanceof Player){
MessageManager.playerMessage(config.getString("messages.prefix") + config.getString("messages.season-disabled"), (Player) sender);
}else {
MessageManager.consoleMessage(config.getString("messages.prefix") + config.getString("messages.season-disabled"), Bukkit.getConsoleSender());
}
}
}
//强制保存
if(args[0].equalsIgnoreCase("forcesave")){
CropManager.saveData();
SprinklerManager.saveData();
if(sender instanceof Player){
MessageManager.playerMessage(config.getString("messages.prefix") + config.getString("messages.force-save"), (Player) sender);
}else {
MessageManager.consoleMessage(config.getString("messages.prefix") + config.getString("messages.force-save"), Bukkit.getConsoleSender());
}
}
//清除缓存
if(args[0].equalsIgnoreCase("cleancache")){
Bukkit.getScheduler().runTaskAsynchronously(CustomCrops.instance,()->{
CropManager.cleanLoadedCache();
SprinklerManager.cleanCache();
});
if(sender instanceof Player){
MessageManager.playerMessage(config.getString("messages.prefix") + config.getString("messages.clean-cache"), (Player) sender);
}else {
MessageManager.consoleMessage(config.getString("messages.prefix") + config.getString("messages.clean-cache"), Bukkit.getConsoleSender());
}
}
if(args[0].equalsIgnoreCase("backup")){
BackUp.backUpData();
if(sender instanceof Player){
MessageManager.playerMessage(config.getString("messages.prefix") + config.getString("messages.backup"), (Player) sender);
}else {
MessageManager.consoleMessage(config.getString("messages.prefix") + config.getString("messages.backup"), Bukkit.getConsoleSender());
}
}
return false;
}
}