免责声明:请一定要耐心,因为我是一个新的年轻的开发人员,我已经看到人们如何感到不安/愤怒,如果有人不知道如何格式的问题正确。
所以我有一个命令,基本上只需要重新启动我的插件和config.yml:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("hellopluginreload") || command.getName().equalsIgnoreCase("hpr"))
this.getPluginLoader().disablePlugin(this);
this.getPluginLoader().enablePlugin(this);
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7[&dHi&bMessage&7] &aSuccessfully &cReloaded &dHi&bMessage"));
return true;
不必重新启动整个服务器,因为这当然会给其他插件用户带来不便。我有一个launchpad(playermovelistener)类:
import me.yarkosharko.helloplugin.Commands.bounceCommand;
import me.yarkosharko.helloplugin.HelloPlugin;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
public class playerMoveListener implements Listener {
HelloPlugin plugin;
public playerMoveListener(HelloPlugin plugin) {
this.plugin = plugin;
}
@EventHandler
public void onPlayerWalk(PlayerMoveEvent me){
if (plugin.getConfig().getBoolean("enabled")) {
Player p = me.getPlayer();
Location underBlock = p.getLocation();
underBlock.setY(underBlock.getY() -1);
if (p.getLocation().getBlock().getType().equals(Material.valueOf(plugin.getConfig().getString("top-block"))) && underBlock.getBlock().getType().equals(Material.valueOf(plugin.getConfig().getString("bottom-block")))){
p.setVelocity(p.getLocation().getDirection().multiply(2).setY(1));
}
}
}
}
当人们碰到某个物体时,它会把人弹起来。问题是,当我在config.yml中放置一个新的块,并运行命令/hellopluginreload时,它会更新config.yml,但在游戏中,新添加的块永远不会作为启动板工作,只有旧块工作。只是澄清一下,是的,我使用的是正确的块名,因为当我重新启动服务器时,它会再次工作,我如何只重新加载我的插件并更新我的值(最好使用/hellopluginreload命令),而不使用/reload或/stop ect。谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!