增加了重载文件
This commit is contained in:
parent
f2adc94e06
commit
4166d3a989
@ -9,12 +9,13 @@ import com.sakurarealm.playerrisk.api.PlayerRiskSettings;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
|
||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
@ -55,7 +56,7 @@ public final class PlayerRisk extends JavaPlugin implements Listener {
|
|||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
// Plugin startup logic
|
// Plugin startup logic
|
||||||
load();
|
load();
|
||||||
getCommand("playerrisk").setExecutor(new CommandHandler(this));
|
getCommand("playerrisk").setExecutor(this::onCommand);
|
||||||
//注册监听器
|
//注册监听器
|
||||||
Bukkit.getPluginManager().registerEvents(this,this);
|
Bukkit.getPluginManager().registerEvents(this,this);
|
||||||
|
|
||||||
@ -72,6 +73,51 @@ public final class PlayerRisk extends JavaPlugin implements Listener {
|
|||||||
getLogger().info(ChatColor.GREEN+"PlayerRisk插件关闭");
|
getLogger().info(ChatColor.GREEN+"PlayerRisk插件关闭");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 指令重载
|
||||||
|
* @param commandSender Source of the command
|
||||||
|
* @param command Command which was executed
|
||||||
|
* @param s Alias of the command which was used
|
||||||
|
* @param strings Passed command arguments
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings){
|
||||||
|
if (!commandSender.isOp()){
|
||||||
|
//不是op不能执行此命令
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (s.equalsIgnoreCase("playerrisk")){
|
||||||
|
if (strings.length == 0){
|
||||||
|
commandSender.sendMessage(ChatColor.RED+"请输入reload重载插件!");
|
||||||
|
return false;
|
||||||
|
}else {
|
||||||
|
String reload = strings[0];
|
||||||
|
if (reload.equalsIgnoreCase("reload")){
|
||||||
|
//重新加载插件
|
||||||
|
//先取消定时任务
|
||||||
|
Bukkit.getScheduler().cancelTasks(this);
|
||||||
|
|
||||||
|
//重新加载文件
|
||||||
|
|
||||||
|
playerRiskManager.setSettings(new PlayerRiskSettings(this));
|
||||||
|
|
||||||
|
//重新注册定时任务
|
||||||
|
getServer().getScheduler().scheduleSyncRepeatingTask(this, this::addRiskToOutTownPlayers,
|
||||||
|
0, playerRiskManager.settings.getIncreaseInterval()*20);
|
||||||
|
|
||||||
|
commandSender.sendMessage(ChatColor.GREEN+"危险度插件重载成功");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
//指令错误
|
||||||
|
commandSender.sendMessage(ChatColor.RED+"请输入正确的指令!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 玩家退出游戏后从map集合中移出
|
* 玩家退出游戏后从map集合中移出
|
||||||
*/
|
*/
|
||||||
@ -128,6 +174,7 @@ public final class PlayerRisk extends JavaPlugin implements Listener {
|
|||||||
getLogger().info(ChatColor.AQUA+"玩家"+player.getName()+"进入了城镇 ");
|
getLogger().info(ChatColor.AQUA+"玩家"+player.getName()+"进入了城镇 ");
|
||||||
|
|
||||||
playerRiskManager.removePlayerLevel(player.getName());
|
playerRiskManager.removePlayerLevel(player.getName());
|
||||||
|
player.sendMessage(ChatColor.GREEN+"进入城镇,危险度归零!");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,10 +188,10 @@ public final class PlayerRisk extends JavaPlugin implements Listener {
|
|||||||
//当玩家离开城镇后,把玩家姓名放入map中
|
//当玩家离开城镇后,把玩家姓名放入map中
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
getLogger().info(ChatColor.GREEN+player.getName()+"离开了城镇开始计算危险度");
|
// getLogger().info(ChatColor.GREEN+player.getName()+"离开了城镇开始计算危险度");
|
||||||
|
|
||||||
playerRiskManager.addPlayerToMap(player.getName(),getCurrentBiome(player));
|
playerRiskManager.addPlayerToMap(player.getName(),getCurrentBiome(player));
|
||||||
|
player.sendMessage(ChatColor.RED+"离开城镇,开始计算危险度!");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ public class PlayerRiskManager {
|
|||||||
|
|
||||||
private final PlayerRisk plugin;
|
private final PlayerRisk plugin;
|
||||||
|
|
||||||
public final PlayerRiskSettings settings;
|
public PlayerRiskSettings settings;
|
||||||
|
|
||||||
//用来记录在野外下线的玩家的危险度,这部分后续可以改成用数据库记录
|
//用来记录在野外下线的玩家的危险度,这部分后续可以改成用数据库记录
|
||||||
private final Map<String,Map<String,Integer>> OffOnlinePlayerBiomeRisk;
|
private final Map<String,Map<String,Integer>> OffOnlinePlayerBiomeRisk;
|
||||||
@ -59,6 +59,9 @@ public class PlayerRiskManager {
|
|||||||
public int getPlayerRiskLevel(String playerName) {
|
public int getPlayerRiskLevel(String playerName) {
|
||||||
|
|
||||||
Integer riskLevel = playerRiskLevels.get(playerName);
|
Integer riskLevel = playerRiskLevels.get(playerName);
|
||||||
|
if (riskLevel == null){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
return riskLevel;
|
return riskLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,4 +211,13 @@ public class PlayerRiskManager {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setSettings(PlayerRiskSettings settings) {
|
||||||
|
//清空危险度信息,重载文件
|
||||||
|
OffOnlinePlayerBiomeRisk.clear();
|
||||||
|
playerRiskLevels.clear();
|
||||||
|
playerBiomeRisk.clear();
|
||||||
|
this.settings = settings;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
package com.sakurarealm.playerrisk.api;
|
package com.sakurarealm.playerrisk.api;
|
||||||
|
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
public class PlayerRiskSettings {
|
public class PlayerRiskSettings {
|
||||||
|
|
||||||
@ -12,6 +17,17 @@ public class PlayerRiskSettings {
|
|||||||
increaseInterval = config.getInt("increase-interval");
|
increaseInterval = config.getInt("increase-interval");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public PlayerRiskSettings(Plugin plugin){
|
||||||
|
//保存配置文件
|
||||||
|
plugin.saveResource("config.yml",false);
|
||||||
|
FileConfiguration config;
|
||||||
|
File file = new File(plugin.getDataFolder(), "config.yml");
|
||||||
|
config = YamlConfiguration.loadConfiguration(file);
|
||||||
|
this.increaseInterval = config.getInt("settings.increase-interval");
|
||||||
|
this.levelMax = config.getInt("settings.level-max");
|
||||||
|
}
|
||||||
|
|
||||||
public int getIncreaseInterval() {
|
public int getIncreaseInterval() {
|
||||||
return increaseInterval;
|
return increaseInterval;
|
||||||
}
|
}
|
||||||
|
@ -13,5 +13,4 @@ permissions:
|
|||||||
commands:
|
commands:
|
||||||
playerrisk:
|
playerrisk:
|
||||||
description: PlayerRisk command
|
description: PlayerRisk command
|
||||||
usage: /playerrisk
|
usage: /playerrisk
|
||||||
aliases: [ pr, prisk ]
|
|
Loading…
x
Reference in New Issue
Block a user