- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我目前正在使用 Bukkit(技术上的 Spigot 插件),我希望它在玩家第一次加入时在文件 (players.yml) 中创建一个字符串。
我目前有:
public void onPlayerJoin(PlayerJoinEvent e){
String player = e.getPlayer().getName().toString();
if(!files.getPlayersConfig().contains(player)) {
files.getPlayersConfig().set(player + ".enabled", true);
files.getPlayersConfig().set(player + ".money", 100);
files.savePlayersConfig();
files.reloadPlayersConfig();
}
}
我基本上想做的是在每个玩家第一次加入时在文件中创建一个字符串“player”。
例如,如果玩家名为bob第一次加入,则会生成该文件
bob:
enabled: true
money: 100
但是,我不希望它在每次玩家加入时重置,所以这就是为什么我试图让它检查文件是否包含“bob”,如果它返回 null,它将创建它。我的问题是它显示为错误,而不是仅仅创建它,因此它不为空。
(抱歉措辞不好,但很难解释。)
谢谢。
日志:
PlayerJoinEvent to McEconPlus v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[spigot.jar:git-Spigot-8dc4297-fbda3a7]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-8dc4297-fbda3a7]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.PlayerList.onPlayerJoin(PlayerList.java:262) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.PlayerList.a(PlayerList.java:147) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.LoginListener.b(LoginListener.java:109) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.LoginListener.c(LoginListener.java:41) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.NetworkManager.a(NetworkManager.java:159) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.ServerConnection.c(ServerConnection.java:82) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:785) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:623) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:526) [spigot.jar:git-Spigot-8dc4297-fbda3a7]
at java.lang.Thread.run(Unknown Source) [?:1.7.0_67]
**Caused by: java.lang.NullPointerException**
at me.mrson.McEconPlus.Events.MCEP_CreatePlayers.onPlayerJoin(MCEP_CreatePlayers.java:21) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_67]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_67]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_67]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_67]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ~[spigot.jar:git-Spigot-8dc4297-fbda3a7]
... 14 more
请求的主类:
公共(public)类 MCEP_Base 扩展 JavaPlugin{ 私有(private)静态Plugin插件;
public File configFile = new File(this.getDataFolder(), "config.yml");
public FileConfiguration config = YamlConfiguration.loadConfiguration(configFile);
public File playersFile = new File(this.getDataFolder(), "players.yml");
public FileConfiguration players = YamlConfiguration.loadConfiguration(playersFile);
public void onEnable(){
plugin = this;
//config
config.options().copyDefaults(true);
config.addDefault("Enabled", "true");
this.saveCustomConfig();
players.options().copyDefaults(true);
players.addDefault("Enabled", true);
this.savePlayersConfig();
//Logger
this.getLogger().log(Level.FINEST, "[McEcon+] Enabling.");
//Commands
getCommand("econ").setExecutor(new MCEP_Econ());
getCommand("pay").setExecutor(new MCEP_Pay());
getCommand("sell").setExecutor(new MCEP_Sell());
//Events
registerEvents(this, new MCEP_CreatePlayers());
}
public void onDisable(){
plugin = null;
}
public static void registerEvent(Plugin plugin, Listener... listeners){
for(Listener listener : listeners){
Bukkit.getServer().getPluginManager().registerEvents(listener, plugin);
}
}
public static Plugin getPlugin() {
return plugin;
}
public void saveCustomConfig(){
try{
config.save(configFile);
}catch(IOException ex){
ex.printStackTrace();
}
}
public void savePlayersConfig(){
try{
players.save(playersFile);
}catch(IOException ex){
ex.printStackTrace();
}
}
public FileConfiguration getCustomConfig(){
if(config == null){
saveCustomConfig();
}
return config;
}
public FileConfiguration getPlayersConfig() {
if (players == null) {
savePlayersConfig();
}
return players;
}
public void reloadCustomConfig(){
if(configFile == null){
configFile = new File(getDataFolder(), "config.yml");
}
config = YamlConfiguration.loadConfiguration(configFile);
config.set("Enabled", true);
}
public void reloadPlayersConfig(){
if(playersFile == null){
playersFile = new File(getDataFolder(), "players.yml");
}
players = YamlConfiguration.loadConfiguration(playersFile);
players.set("Enabled", true);
}
public static void registerEvents(org.bukkit.plugin.Plugin plugin, Listener... listeners) {
for (Listener listener : listeners) {
Bukkit.getServer().getPluginManager().registerEvents(listener, plugin);
}
}
}
以及我的 Listener 类:
公共(public)类 MCEP_CreatePlayers 实现 Listener{ MCEP_Base 文件;
@EventHandler()
public void onPlayerJoin(PlayerJoinEvent e){
String player = e.getPlayer().getName().toString();
if(files == null){
MCEP_Base.getPlugin().getLogger().warning("Test");
}else if(files.getPlayersConfig() == null){
MCEP_Base.getPlugin().getLogger().warning("Test1");
}
else if(!files.players.contains(player)) {
files.getPlayersConfig().set(player + ".enabled", true);
files.getPlayersConfig().set(player + ".money", 100);
files.savePlayersConfig();
files.reloadPlayersConfig();
}
}
}
最佳答案
您可以添加另一个检查来查看 getPlayersConfig() 是否返回 null :
if(files.getPlayersConfig() == null) {
// handle this case
}
else if(!files.getPlayersConfig().contains(player)) {
// continue with rest of your code
}
关于java - files.getPlayersConfig().contains() 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27751694/
来自 java docs 公共(public) FileWriter(String fileName) 抛出 IOException 抛出: IOException - 如果指定的文件存在但它是目录而
我使用以下代码将我的 .net 客户端(基于 CQL)连接到 3 节点 Cassandra 集群。我以 30 条记录/秒的速度(从 RabbitMQ)获取数据,并且它们顺利地存储在 cassandra
如果在读取文件时缺少字段,我应该捕获 NoSuchElementException。如果缺少一个字段,我只需要跳到文件的下一行。我的问题是,我在哪里实现我的 try/catch 代码来做到这一点?这是
我正在尝试使用 ASP.NET MVC 实现 OpeinID 登录。我正在尝试按照 http://blog.nerdbank.net/2008/04/add-openid-login-support-
学习使用 Java 进行 xml 解析,并且正在编写一个测试程序来尝试各种东西。所有测试 System.out.println() 都是我在控制台中所期望的,除了 childElement 返回 [n
我正在尝试使用 SwingUtilities 创建 JFrame Thread tt = new Thread(new Runnable() { public void run
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我写了这段代码: MethodInfo method2 = typeof(IntPtr).GetMethod( "op_Explicit", Bind
我开始学习 Java,并且正在根据书本做一些练习。在执行此操作时,我遇到了以下错误:线程“main”java.util.InputMismatchException 中出现异常。我正在编写一个简单的程
我有一个文本文件,其中前两行是整数 m 和 n,然后有 m 行,每行都有 n 管道分隔值。我编写了一个程序,读取文件并使用文件中的值创建 m*n 数组,它工作了无数次,然后突然,使用相同的代码,使用相
所以我尝试使用在另一个类中生成的 bean 以在主应用程序中使用 package com.simon.spring.basics.properties; import org.spri
我还没有完成这个应用程序,但我希望在我的手机上看到它的样子。但是,它会强制关闭并引发 InstantiationException。 logcat 异常: 09-19 20:13:47.987: D/
我想从 UIViewController 加载一个基于 SwiftUI 的 View ,该 View 读取包本地的 json。仅 swiftUI 项目中的代码和绑定(bind)工作正常,当我利用 UI
'java.net.SocketTimeoutException:连接超时' 循环一段时间后我收到此错误。为什么我会收到 SocketTimeoutException?我该如何修复这个错误? @Ove
当有 null 值时抛出 ArgumentNullException() 是个好主意吗? This thread 没有提到在 null 上抛出的最明显的异常。 谢谢 最佳答案 ArgumentNull
我得到这个异常: NullReferenceException Object reference not set to an instance of an object at Namespace
所以其中一个方法的描述如下: public BasicLinkedList addToFront(T data) This operation is invalid for a sorted list
我正在使用 Intellij Idea,当我去生成 JavaDocs(通过工具 -> 生成 JavaDoc)时,我抛出了一个 IllegealArgumentException,没有关于发生了什么问题
我正在学习 C++ 中的互斥锁,但以下代码(摘自 N. Josuttis 的“C++ 标准库”)有问题。 我不明白为什么它会阻塞/抛出除非我在主线程中添加this_thread::sleep_for(
我正在试验 JavaFX 标签和组,通过鼠标拖动将它们移动到屏幕上。新节点从一些线程添加到动画组。但是,有时我会突然看到以下异常 - 我假设,当某些节点重叠时。但是不知道是什么问题……因为不涉及我的代
我是一名优秀的程序员,十分优秀!