LuckLottery/src/main/java/pw/yumc/LuckLottery/command/LuckLotteryCommand.java

107 lines
3.9 KiB
Java

package pw.yumc.LuckLottery.command;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import pw.yumc.LuckLottery.LuckLottery;
import pw.yumc.LuckLottery.config.PlayerData;
import pw.yumc.LuckLottery.utils.ChatUtils;
import pw.yumc.LuckLottery.utils.InvUtils;
import pw.yumc.LuckLottery.utils.LotteryUtils;
import pw.yumc.LuckLottery.utils.Perm;
import pw.yumc.YumCore.commands.CommandArgument;
import pw.yumc.YumCore.commands.CommandExecutor;
import pw.yumc.YumCore.commands.CommandManager;
import pw.yumc.YumCore.commands.annotation.Async;
import pw.yumc.YumCore.commands.annotation.Cmd;
import pw.yumc.YumCore.commands.annotation.Help;
import pw.yumc.YumCore.commands.annotation.Sort;
public class LuckLotteryCommand implements CommandExecutor {
LuckLottery plugin;
public LuckLotteryCommand() {
new CommandManager("ll").register(this);
}
@Cmd(permission = Perm.Clear)
@Help("清除所有已购买彩票§4(管理员命令)")
@Sort(6)
public void clear(final CommandArgument e) {
final CommandSender sender = e.getSender();
if (e.getArgs().length > 0) {
ChatUtils.sendMessage(sender, ChatColor.DARK_RED + "警告: 已经清理所有彩票数据,此操作无法撤销!");
LotteryUtils.clearPlayerLottery(sender);
} else {
ChatUtils.sendMessage(sender, ChatColor.LIGHT_PURPLE + "警告: 即将清理所有彩票数据,此操作将无法取消!");
ChatUtils.sendMessage(sender, ChatColor.RED + "命令: 请使用/ll clear confirm 确定清理!");
}
}
@Cmd(onlyPlayer = true)
@Help("打开彩票购买界面")
public boolean ll(final CommandArgument e) {
final Player p = (Player) e.getSender();
final int price = LotteryUtils.getPrice();
if (LuckLottery.economy.hasAccount(p) && LuckLottery.economy.has(p, price)) {
InvUtils.openGui(p);
} else {
ChatUtils.sendMessage(p, ChatColor.GOLD + "你没有足够的金钱购买彩票,每张彩票" + ChatColor.RED + price + ChatColor.GOLD + "元!");
}
return true;
}
@Async
@Cmd(permission = Perm.Look)
@Help("查看彩票系统状态§4(管理员命令)")
@Sort(3)
public void look(final CommandArgument e) {
final CommandSender sender = e.getSender();
LotteryUtils.showSystemLottery(sender);
PlayerData.printStatus(sender);
}
@Cmd(permission = Perm.Random)
@Help("重新生成彩票号码§4(管理员命令)")
@Sort(4)
public void random(final CommandArgument e) {
LotteryUtils.updateSystemLottery(e.getSender());
}
@Cmd(permission = Perm.Reload)
@Help("重载彩票插件§4(管理员命令)")
@Sort(7)
public void reload(final CommandArgument e) {
final CommandSender sender = e.getSender();
final PluginManager pm = plugin.getServer().getPluginManager();
ChatUtils.sendMessage(sender, ChatColor.GREEN + "配置文件已重载!");
pm.disablePlugin(plugin);
pm.enablePlugin(plugin);
}
@Cmd(permission = Perm.Reward)
@Help("结算上一轮彩票§4(管理员命令)")
@Sort(5)
public void reward(final CommandArgument e) {
LotteryUtils.rewardLastLottery();
ChatUtils.sendMessage(e.getSender(), ChatColor.GREEN + "已结算上一轮彩票!");
}
@Cmd(onlyPlayer = true)
@Help("查看已购买彩票")
@Sort(1)
public void show(final CommandArgument e) {
PlayerData.showPlayerLottery((Player) e.getSender());
}
@Cmd(permission = Perm.ShowAll)
@Help("查看所以玩家已购买彩票§4(管理员命令)")
@Sort(2)
public void showall(final CommandArgument e) {
PlayerData.showAllPlayerLottery(e.getSender());
}
}