commit be4cd7ac7fe1229a4a14a643a0a1b126b1cb2782
Author: yaohunya <1763917516@qq.com>
Date: Fri Jul 11 22:49:22 2025 +0800
初始版
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..02a463d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,36 @@
+
+
+ 4.0.0
+
+ com.yaohun.guaji.AuGuaJi
+ DemonLevelReward
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+ public-rpg
+ https://repo.aurora-pixels.com/repository/public-rpg/
+
+
+
+
+
+ me.Demon.DemonPlugin
+ DemonAPI
+ 2.2.9
+
+
+ org.spigotmc
+ spigot-api
+ 1.12.2
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/yaohun/levelreward/LevelReward.java b/src/main/java/com/yaohun/levelreward/LevelReward.java
new file mode 100644
index 0000000..0cd3294
--- /dev/null
+++ b/src/main/java/com/yaohun/levelreward/LevelReward.java
@@ -0,0 +1,57 @@
+package com.yaohun.levelreward;
+
+import com.yaohun.levelreward.manage.PlayerManager;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public class LevelReward extends JavaPlugin {
+
+ private static LevelReward instance;
+ private static PlayerManager playerManager;
+
+
+ @Override
+ public void onEnable() {
+ instance = this;
+ playerManager = new PlayerManager();
+ }
+
+ @Override
+ public void onDisable() {
+
+ }
+
+ @Override
+ public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
+ if("open".equalsIgnoreCase(args[0])){
+ return true;
+ }
+ if(!sender.isOp()) {
+ return true;
+ }
+ if (args.length == 0) {
+ sender.sendMessage("");
+ sender.sendMessage("§e------- ======= §6等级成长礼包 §e======= -------");
+ sender.sendMessage("§2/"+label+" add §e[方案] §2<玩家> §f- §2增加礼包");
+ sender.sendMessage("§2/"+label+" reset §e[方案] §2<玩家> §f- §2重置礼包");
+ sender.sendMessage("§2/"+label+" show §e[方案] §f- §2查看礼包内容");
+ sender.sendMessage("§2/"+label+" edit §e[方案] §f- §2设置礼包内容");
+ sender.sendMessage("§2/"+label+" list §f- §2查看礼包方案");
+ sender.sendMessage("§2/"+label+" reload §f- §2重载配置文件");
+ sender.sendMessage("§e------- ======= §6等级成长礼包 §e======= -------");
+ sender.sendMessage("");
+ return true;
+ }
+ return false;
+ }
+
+
+ public static LevelReward inst() {
+ return instance;
+ }
+
+ public static PlayerManager getPlayerManager() {
+ return playerManager;
+ }
+}
diff --git a/src/main/java/com/yaohun/levelreward/data/PlayerData.java b/src/main/java/com/yaohun/levelreward/data/PlayerData.java
new file mode 100644
index 0000000..2da7a26
--- /dev/null
+++ b/src/main/java/com/yaohun/levelreward/data/PlayerData.java
@@ -0,0 +1,87 @@
+package com.yaohun.levelreward.data;
+
+import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.configuration.file.YamlConfiguration;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * @author Administrator
+ */
+public class PlayerData {
+
+ /**
+ * 玩家数据管理类
+ * 用于保存和管理玩家的游戏数据,特别是玩家的奖励信息
+ */
+ private final File file;
+ private final FileConfiguration configuration;
+
+ /**
+ * 存储玩家奖励的列表
+ */
+ private final List rewardList;
+
+ /**
+ * 构造玩家数据对象
+ *
+ * @param playerName 玩家名称,用于标识和加载对应的玩家数据文件
+ */
+ public PlayerData(String playerName){
+ // 初始化文件路径
+ this.file = new File("plugins/AuData/LevelReward", playerName + ".yml");
+ // 检查并创建玩家数据文件的父目录
+ if(!file.getParentFile().exists()) {
+ file.getParentFile().mkdirs();
+ this.configuration = YamlConfiguration.loadConfiguration(file);
+ } else {
+ this.configuration = YamlConfiguration.loadConfiguration(file);
+ }
+ // 从配置中加载玩家的奖励列表
+ this.rewardList = this.configuration.getStringList("RewardList");
+ }
+
+ /**
+ * 保存玩家数据到文件
+ * 将玩家的奖励列表保存到配置文件中,并写入磁盘
+ */
+ public void savePlayerData(){
+ this.configuration.set("RewardList", rewardList);
+ try {
+ this.configuration.save(file);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * 检查玩家是否已有指定的奖励
+ *
+ * @param rewardKey 奖励的唯一键值
+ * @return 如果玩家已有指定的奖励,则返回true;否则返回false
+ */
+ public boolean isHasReward(String rewardKey){
+ return rewardList.contains(rewardKey);
+ }
+
+ /**
+ * 给玩家添加新的奖励
+ *
+ * @param rewardKey 新增奖励的唯一键值
+ */
+ public void addReward(String rewardKey){
+ rewardList.add(rewardKey);
+ }
+
+ /**
+ * 获取玩家的奖励列表
+ *
+ * @return 返回包含玩家所有奖励键值的列表
+ */
+ public List getRewardList() {
+ return rewardList;
+ }
+
+}
diff --git a/src/main/java/com/yaohun/levelreward/gui/RewardGui.java b/src/main/java/com/yaohun/levelreward/gui/RewardGui.java
new file mode 100644
index 0000000..7e8e97d
--- /dev/null
+++ b/src/main/java/com/yaohun/levelreward/gui/RewardGui.java
@@ -0,0 +1,7 @@
+package com.yaohun.levelreward.gui;
+
+import org.bukkit.event.Listener;
+
+public class RewardGui implements Listener {
+
+}
diff --git a/src/main/java/com/yaohun/levelreward/manage/PlayerManager.java b/src/main/java/com/yaohun/levelreward/manage/PlayerManager.java
new file mode 100644
index 0000000..a45f5db
--- /dev/null
+++ b/src/main/java/com/yaohun/levelreward/manage/PlayerManager.java
@@ -0,0 +1,32 @@
+package com.yaohun.levelreward.manage;
+
+import com.yaohun.levelreward.data.PlayerData;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+
+import java.util.HashMap;
+
+public class PlayerManager {
+
+ private final HashMap playerDataMap = new HashMap<>();
+
+ public PlayerManager() {
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ String playerName = player.getName();
+ playerDataMap.put(playerName,new PlayerData(playerName));
+ }
+ }
+
+ public void saveAllPlayerData() {
+ for (PlayerData playerData : playerDataMap.values()) {
+ playerData.savePlayerData();
+ }
+ }
+
+ public PlayerData getPlayerData(String playerName) {
+ if (!playerDataMap.containsKey(playerName)) {
+ playerDataMap.put(playerName,new PlayerData(playerName));
+ }
+ return playerDataMap.get(playerName);
+ }
+}
diff --git a/src/main/java/me/Demon/DemonLevelReward/Event/LevelRewardReceiveEvent.java b/src/main/java/me/Demon/DemonLevelReward/Event/LevelRewardReceiveEvent.java
new file mode 100644
index 0000000..fddf9eb
--- /dev/null
+++ b/src/main/java/me/Demon/DemonLevelReward/Event/LevelRewardReceiveEvent.java
@@ -0,0 +1,40 @@
+package me.Demon.DemonLevelReward.Event;
+
+import org.bukkit.entity.Player;
+import org.bukkit.event.Event;
+import org.bukkit.event.HandlerList;
+
+public class LevelRewardReceiveEvent extends Event {
+
+ private static HandlerList handlers = new HandlerList();
+ private Player player;
+ private String rewardKey;
+ private int levels;
+
+ @Override
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+ public LevelRewardReceiveEvent(Player player, String rewardKey, int levels) {
+ this.player = player;
+ this.rewardKey = rewardKey;
+ this.levels = levels;
+ }
+
+ public Player getPlayer() {
+ return player;
+ }
+
+ public String getRewardKey() {
+ return rewardKey;
+ }
+
+ public int getLevels() {
+ return levels;
+ }
+
+
+}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
new file mode 100644
index 0000000..4653cba
--- /dev/null
+++ b/src/main/resources/plugin.yml
@@ -0,0 +1,5 @@
+name: DemonLevelReward
+main: com.yaohun.levelreward.LevelReward
+version: 2.0.6
+commands:
+ levelreward:
\ No newline at end of file