diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index d5d5d71..5853470 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,7 +5,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -46,22 +69,22 @@
- {
+ "keyToString": {
+ "Maven.untitled [clean].executor": "Run",
+ "Maven.untitled [install].executor": "Run",
+ "Maven.untitled [package].executor": "Run",
+ "Maven.untitled [verify].executor": "Run",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "kotlin-language-version-configured": "true",
+ "last_opened_file_path": "C:/Users/Administrator/Desktop/demo",
+ "project.structure.last.edited": "模块",
+ "project.structure.proportion": "0.0",
+ "project.structure.side.proportion": "0.0",
+ "run.code.analysis.last.selected.profile": "pProject Default",
+ "settings.editor.selected.configurable": "preferences.pluginManager"
}
-}]]>
+}
@@ -219,7 +242,15 @@
1737360402600
-
+
+
+ 1737361026740
+
+
+
+ 1737361026740
+
+
diff --git a/src/main/java/org/start/command/command.java b/src/main/java/org/start/command/command.java
index 7e68621..24d376f 100644
--- a/src/main/java/org/start/command/command.java
+++ b/src/main/java/org/start/command/command.java
@@ -8,6 +8,7 @@ import org.bukkit.entity.Player;
import org.start.data.TeamManager;
import org.start.player.cuan_song.chuan_song;
+import org.start.player.pCase.run_;
import org.start.print;
import org.start.player.bossbar.boss_bar_runs;
@@ -56,6 +57,7 @@ public class command implements CommandExecutor {
boss_bar_runs.onPlayerJoinTeam(player,"red"); //为玩家添加进度条
print.player_p(player,"你已加入进攻方");
print.boardChat("玩家"+ player.getName()+"加入进攻方");
+ run_.joinRed(player);
return true;
}
}
@@ -69,6 +71,7 @@ public class command implements CommandExecutor {
boss_bar_runs.onPlayerJoinTeam(player,"blue");
print.player_p(player,"你已加入防守方");
print.boardChat("玩家"+ player.getName()+"加入进攻方");
+ run_.joinBlue(player);
return true;
}
@@ -85,6 +88,7 @@ public class command implements CommandExecutor {
boss_bar_runs.onPlayerLeaveTeam(player); //移除玩家的进度条
print.boardChat("玩家"+ player.getName()+"离开守塔模式");
TeamManager.removePlayer(player.getName()); //将玩家移出存储类
+ run_.stop(player);
return true;
}
diff --git a/src/main/java/org/start/getConfig.java b/src/main/java/org/start/getConfig.java
new file mode 100644
index 0000000..100bd7c
--- /dev/null
+++ b/src/main/java/org/start/getConfig.java
@@ -0,0 +1,40 @@
+package org.start;
+
+import org.bukkit.ChatColor;
+import org.bukkit.plugin.java.JavaPlugin;
+
+
+public class getConfig {
+ private static JavaPlugin plugin;
+ public getConfig(JavaPlugin plugin){getConfig.plugin = plugin;plugin.getLogger().info("getConfig 类初始化操作已完成");}
+
+ public static double getDouble(String path, double def){
+
+ // 传 0.0 等于sb 或者本身需求就是 0.0,所以直接返回 0.0
+ if (def == 0.0){
+ print.command_p(print.PrintEnum.E, "The target path " + ChatColor.YELLOW + path + " is empty or 0.0, and the default value is 0.0. In general, this is not a normal result");
+ return def;
+ }
+
+ double d = plugin.getConfig().getDouble(path);
+ if (d == 0.0){d = def;}
+
+ return d;
+ }
+
+ public static String getString(String path, String def) throws Exception {
+
+ String s = plugin.getConfig().getString(path);
+
+ if (s == null & def == null){
+ print.command_p(print.PrintEnum.E, "The target path " + ChatColor.YELLOW + path + " is empty, and the default value is empty. In general, this is not a normal result");
+ return null;
+ }
+
+ if (s == null){
+ return def;
+ }
+
+ return s;
+ }
+}
diff --git a/src/main/java/org/start/player/pCase/pIdName.java b/src/main/java/org/start/player/pCase/pIdName.java
deleted file mode 100644
index 3945c68..0000000
--- a/src/main/java/org/start/player/pCase/pIdName.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.start.player.pCase;
-
-
-// 控制玩家头顶的名字状态
-public class pIdName {
-
-}
diff --git a/src/main/java/org/start/player/pCase/p_IdName.java b/src/main/java/org/start/player/pCase/p_IdName.java
new file mode 100644
index 0000000..ae5f16a
--- /dev/null
+++ b/src/main/java/org/start/player/pCase/p_IdName.java
@@ -0,0 +1,26 @@
+package org.start.player.pCase;
+
+
+import org.bukkit.ChatColor;
+import org.bukkit.entity.Player;
+
+// 控制玩家头顶的名字状态
+public class p_IdName {
+ public static void setRed(Player player){
+ String red = ChatColor.RED+"[红队] " + player.getName();
+ player.setCustomName(red);
+ player.setCustomNameVisible(true);
+ }
+
+ public static void setBlue(Player player){
+ String blue = ChatColor.BLUE + "[蓝队] " + player.getName();
+ player.setCustomName(blue);
+ player.setCustomNameVisible(true);
+ }
+
+ public static void setStop(Player player){
+ player.setCustomName(player.getName());
+ player.setCustomNameVisible(true);
+ }
+
+}
diff --git a/src/main/java/org/start/player/pCase/p_heath.java b/src/main/java/org/start/player/pCase/p_heath.java
new file mode 100644
index 0000000..a445133
--- /dev/null
+++ b/src/main/java/org/start/player/pCase/p_heath.java
@@ -0,0 +1,43 @@
+package org.start.player.pCase;
+
+import org.bukkit.entity.Player;
+import org.start.getConfig;
+import org.start.print;
+
+public class p_heath {
+
+ private static double heath;
+
+ public static void init(){
+ heath = getConfig.getDouble("heath", 40);
+ }
+
+ public static void setHeath(Player player){
+ double currentHealth = player.getHealth();
+
+ // 确保不会报 error
+ if (heath < 0){
+ heath = 0;
+ }
+
+ // 如果新的最大血量小于当前血量,则调整玩家当前血量为最大血量
+ if (currentHealth > heath) {
+ player.setHealth(heath);
+ }
+
+ player.setMaxHealth(heath);
+
+ try {
+ player.setHealth(heath);
+ }catch (Exception e){
+ print.command_p("e",""+e);
+ }
+
+
+ }
+
+ public static void stop(Player player){
+ double h = 20.0;
+ player.setHealth(h);
+ }
+}
diff --git a/src/main/java/org/start/player/pCase/p_kang_xing.java b/src/main/java/org/start/player/pCase/p_kang_xing.java
new file mode 100644
index 0000000..e8a57d2
--- /dev/null
+++ b/src/main/java/org/start/player/pCase/p_kang_xing.java
@@ -0,0 +1,38 @@
+package org.start.player.pCase;
+
+import org.bukkit.entity.Player;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionEffectType;
+import org.start.getConfig;
+import org.start.print;
+import org.start.print.PrintEnum;
+
+public class p_kang_xing {
+
+ private static int duration; // 设定持续时间
+ private static int amplifier; //设置效果等级
+ private static double heath = 60.0;
+
+ public static void init(){
+ double amplifier_ = getConfig.getDouble("amplifier", 5);
+ amplifier = (int) amplifier_;
+
+ double duration_ = getConfig.getDouble("duration", 7200);
+ duration = (int) duration_;
+
+ if (duration == 5 & amplifier == 7200){
+ print.command_p(PrintEnum.W,"警告,已传入的抗性,持续时间参数为默认值(5,7200).");
+ } else {
+ print.command_p(PrintEnum.I,"已加载抗性,持续时间的值分别为 "+ amplifier + " " + duration);
+ }
+ }
+
+ public static void setKangXing(Player player){
+ PotionEffect damageResistance = new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, duration, amplifier);
+ player.addPotionEffect(damageResistance);
+ }
+
+ public static void moveAll(Player player){
+ player.removePotionEffect(PotionEffectType.DAMAGE_RESISTANCE);
+ }
+}
diff --git a/src/main/java/org/start/player/pCase/p_kui_jia.java b/src/main/java/org/start/player/pCase/p_kui_jia.java
new file mode 100644
index 0000000..1f13d51
--- /dev/null
+++ b/src/main/java/org/start/player/pCase/p_kui_jia.java
@@ -0,0 +1,49 @@
+package org.start.player.pCase;
+
+import org.bukkit.Color;
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.LeatherArmorMeta;
+
+
+// 考虑到游戏开始时仍有玩家可能佩戴盔甲,因此游戏开始时移除盔甲
+public class p_kui_jia {
+
+ public static void setBlue(Player player){
+ // 清空玩家的所有盔甲栏(头盔、胸甲、裤子、靴子)
+ ItemStack[] emptyArmor = new ItemStack[4];
+ player.getInventory().setArmorContents(emptyArmor);
+
+ player.getInventory().setChestplate(createDyeableArmor(Material.LEATHER_CHESTPLATE, Color.BLUE));
+ player.getInventory().setLeggings(createDyeableArmor(Material.LEATHER_LEGGINGS, Color.BLUE));
+ }
+
+ public static void setRed(Player player){
+ // 同上
+ ItemStack[] emptyArmor = new ItemStack[4];
+ player.getInventory().setArmorContents(emptyArmor);
+
+ player.getInventory().setChestplate(createDyeableArmor(Material.LEATHER_CHESTPLATE, Color.RED));
+ player.getInventory().setLeggings(createDyeableArmor(Material.LEATHER_LEGGINGS, Color.RED));
+ }
+
+ public static void setStop(Player player){
+ // 清空玩家的所有盔甲栏(头盔、胸甲、裤子、靴子)
+ ItemStack[] emptyArmor = new ItemStack[4];
+ player.getInventory().setArmorContents(emptyArmor);
+ }
+
+ // 创建染色的皮革盔甲
+ private static ItemStack createDyeableArmor(Material material, Color color) {
+ ItemStack armor = new ItemStack(material);
+ LeatherArmorMeta meta = (LeatherArmorMeta) armor.getItemMeta();
+
+ if (meta != null) {
+ meta.setColor(color); // 设置颜色
+ armor.setItemMeta(meta); // 应用更改
+ }
+
+ return armor;
+ }
+}
diff --git a/src/main/java/org/start/player/pCase/run_.java b/src/main/java/org/start/player/pCase/run_.java
index f30499d..1393a9c 100644
--- a/src/main/java/org/start/player/pCase/run_.java
+++ b/src/main/java/org/start/player/pCase/run_.java
@@ -1,9 +1,37 @@
package org.start.player.pCase;
+import org.bukkit.entity.Player;
+
// 主类,用于控制:
-// 玩家头顶的名字系统
-// 玩家抗性系统
-// 玩家血量系统
-// 玩家盔甲颜色系统
+// 玩家头顶的名字系统 -> ok
+// 玩家抗性系统 -> no
+// 玩家血量系统 -> no
+// 玩家盔甲颜色系统 -> ok
public class run_ {
+
+ public static void init(){
+ p_heath.init();
+ }
+
+ public static void joinRed(Player player){
+ p_IdName.setRed(player);
+ p_kui_jia.setRed(player);
+ p_kang_xing.setKangXing(player);
+ p_heath.setHeath(player);
+ }
+
+ public static void joinBlue(Player player){
+ p_IdName.setBlue(player);
+ p_kui_jia.setBlue(player);
+ p_kang_xing.setKangXing(player);
+ p_heath.setHeath(player);
+ }
+
+ public static void stop(Player player){
+ p_IdName.setStop(player);
+ p_kui_jia.setStop(player);
+ p_kang_xing.moveAll(player);
+ p_heath.stop(player);
+ }
+
}
diff --git a/src/main/java/org/start/print.java b/src/main/java/org/start/print.java
index 68c780c..e727e38 100644
--- a/src/main/java/org/start/print.java
+++ b/src/main/java/org/start/print.java
@@ -9,12 +9,20 @@ public class print {
private static JavaPlugin plugin;
public print(JavaPlugin plugin){print.plugin = plugin;plugin.getLogger().info("print 类初始化操作已完成");}
- public static void command_p(String type, String msg) {
- if (type.equals("w")) {
+ public enum PrintEnum {
+ I("i"),
+ W("w"),
+ E("e");
+ private final String value;
+ PrintEnum(String value) {this.value = value;}
+ }
+
+ public static void command_p(PrintEnum type, String msg) {
+ if (type == PrintEnum.W) {
plugin.getLogger().info("\033[33m[Waring] \033[0m" + msg);
- } else if (type.equals("i")) {
+ } else if (type == PrintEnum.I) {
plugin.getLogger().info("\033[34m[Info] \033[0m" + msg);
- } else if (type.equals("e")) {
+ } else if (type == PrintEnum.E) {
plugin.getLogger().info("\033[31m[Error] \033[0m" + msg);
} else {
plugin.getLogger().info("\033[33m[Waring] \033[0m" + "意外的输出调用" + type + "(信息内容:" + msg + ")");
@@ -43,3 +51,5 @@ public class print {
Bukkit.broadcastMessage(msg_);
}
}
+
+
diff --git a/src/main/java/org/start/run.java b/src/main/java/org/start/run.java
index c558356..ed02ad0 100644
--- a/src/main/java/org/start/run.java
+++ b/src/main/java/org/start/run.java
@@ -48,6 +48,7 @@ public class run extends JavaPlugin implements Listener {
//开始初始化 这几句都是爷,必须最先初始化
new print(this); // <------- 初始化信息输出类,位于当前文件
+ new getConfig(this); // <------- 初始化配置获取类
new worldSpawnItem(this); // <------- 初始化传送点获取类,位于data
def_path.def_path_(this); // <------- 初始化玩家占领点获取类,位于player -> main
new def_path().initPath(); // <------- 初始化占领点位置
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index f439750..fee463a 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -40,5 +40,15 @@ capture_area:
z: 110
+# 指定玩家获得的抗性提升等级,时间
+amplifier: 7
+duration: 10000
+
+
+# 指定玩家进入该模式时,修改玩家血量为多少
+heath: 60
+
+
+
diff --git a/target/classes/org/start/command/command.class b/target/classes/org/start/command/command.class
index 6129d39..91e6b00 100644
Binary files a/target/classes/org/start/command/command.class and b/target/classes/org/start/command/command.class differ
diff --git a/target/classes/org/start/player/main/def_path.class b/target/classes/org/start/player/main/def_path.class
deleted file mode 100644
index f6db200..0000000
Binary files a/target/classes/org/start/player/main/def_path.class and /dev/null differ
diff --git a/target/classes/org/start/player/main/demo.class b/target/classes/org/start/player/main/demo.class
deleted file mode 100644
index 6e1b091..0000000
Binary files a/target/classes/org/start/player/main/demo.class and /dev/null differ
diff --git a/target/classes/org/start/player/main/redAtEvent.class b/target/classes/org/start/player/main/redAtEvent.class
deleted file mode 100644
index d40d884..0000000
Binary files a/target/classes/org/start/player/main/redAtEvent.class and /dev/null differ
diff --git a/target/classes/org/start/player/main/run_$1.class b/target/classes/org/start/player/main/run_$1.class
index afa0587..b6ba0a1 100644
Binary files a/target/classes/org/start/player/main/run_$1.class and b/target/classes/org/start/player/main/run_$1.class differ
diff --git a/target/classes/org/start/player/main/run_.class b/target/classes/org/start/player/main/run_.class
index 1332cf1..183a8b2 100644
Binary files a/target/classes/org/start/player/main/run_.class and b/target/classes/org/start/player/main/run_.class differ
diff --git a/target/classes/org/start/player/main/say$1.class b/target/classes/org/start/player/main/say$1.class
deleted file mode 100644
index 1136ed0..0000000
Binary files a/target/classes/org/start/player/main/say$1.class and /dev/null differ
diff --git a/target/classes/org/start/player/main/say.class b/target/classes/org/start/player/main/say.class
deleted file mode 100644
index f640bfc..0000000
Binary files a/target/classes/org/start/player/main/say.class and /dev/null differ
diff --git a/target/classes/org/start/player/main/shi_fo_at.class b/target/classes/org/start/player/main/shi_fo_at.class
deleted file mode 100644
index fe1aa26..0000000
Binary files a/target/classes/org/start/player/main/shi_fo_at.class and /dev/null differ
diff --git a/target/classes/org/start/run.class b/target/classes/org/start/run.class
index e719b10..c5832e3 100644
Binary files a/target/classes/org/start/run.class and b/target/classes/org/start/run.class differ
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
index 09427ba..10fe0d9 100644
--- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -1,17 +1,19 @@
+org\start\player\pCase\p_heath.class
org\start\player\bossbar\manger.class
org\start\run.class
+org\start\player\main\model\shi_fo_at.class
org\start\player\bossbar\boss_bar_runs.class
-org\start\player\main\def_path.class
-org\start\player\main\demo.class
-org\start\player\main\redAtEvent.class
+org\start\player\main\model\redAtEvent.class
+org\start\player\pCase\p_kui_jia.class
org\start\player\main\run_.class
+org\start\player\pCase\run_.class
org\start\player\cuan_song\chuan_song.class
-org\start\player\main\say$1.class
-org\start\player\main\say.class
org\start\command\commandTab.class
+org\start\player\pCase\p_kang_xing.class
org\start\print.class
+org\start\player\pCase\p_IdName.class
org\start\player\bossbar\data.class
+org\start\player\main\model\def_path.class
org\start\data\TeamManager.class
org\start\player\main\run_$1.class
-org\start\player\main\shi_fo_at.class
org\start\command\command.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index b98c961..40b0b7f 100644
--- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,16 +1,19 @@
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\bossbar\boss_bar_runs.java
+D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\main\model\shi_fo_at.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\main\run_.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\cuan_song\chuan_song.java
-D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\main\demo.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\data\TeamManager.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\data\worldSpawnItem.java
+D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\pCase\p_kang_xing.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\bossbar\data.java
+D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\main\model\redAtEvent.java
+D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\pCase\p_kui_jia.java
+D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\main\model\def_path.java
+D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\pCase\p_heath.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\command\command.java
-D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\main\redAtEvent.java
+D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\pCase\run_.java
+D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\pCase\p_IdName.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\print.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\bossbar\manger.java
-D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\main\def_path.java
-D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\main\say.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\run.java
D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\command\commandTab.java
-D:\project\java\mc_spring_1.20\守塔模式\src\main\java\org\start\player\main\shi_fo_at.java