初始版

This commit is contained in:
yaohunya 2025-07-11 22:49:22 +08:00
commit be4cd7ac7f
7 changed files with 264 additions and 0 deletions

36
pom.xml Normal file
View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yaohun.guaji.AuGuaJi</groupId>
<artifactId>DemonLevelReward</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>public-rpg</id>
<url>https://repo.aurora-pixels.com/repository/public-rpg/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>me.Demon.DemonPlugin</groupId>
<artifactId>DemonAPI</artifactId>
<version>2.2.9</version>
</dependency>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.12.2</version>
</dependency>
</dependencies>
</project>

View File

@ -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;
}
}

View File

@ -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<String> 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<String> getRewardList() {
return rewardList;
}
}

View File

@ -0,0 +1,7 @@
package com.yaohun.levelreward.gui;
import org.bukkit.event.Listener;
public class RewardGui implements Listener {
}

View File

@ -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<String, PlayerData> 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);
}
}

View File

@ -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;
}
}

View File

@ -0,0 +1,5 @@
name: DemonLevelReward
main: com.yaohun.levelreward.LevelReward
version: 2.0.6
commands:
levelreward: