我正在制作一个bukkit插件,允许玩家用密码锁定箱子。为了保护玩家,我想保留服务器操作员的密码。抑制控制台输出的玩家命令
我想隐藏当玩家使用命令时打印的控制台文本。例如,当玩家输入/ gamemode 1时,控制台输出命令以及谁使用它。有什么办法可以阻止它吗?也许拦截它并擦除它,或者是乱码?
我正在制作一个bukkit插件,允许玩家用密码锁定箱子。为了保护玩家,我想保留服务器操作员的密码。抑制控制台输出的玩家命令
我想隐藏当玩家使用命令时打印的控制台文本。例如,当玩家输入/ gamemode 1时,控制台输出命令以及谁使用它。有什么办法可以阻止它吗?也许拦截它并擦除它,或者是乱码?
因此,我环顾了这些插件,它们比我需要做这件简单的事情复杂得多,所以我想我会发布我的解决方案,为任何人谁绊倒这一点。
你想要做的是使用java.util.logging.Filter接口创建一个过滤器。在那你重写isLoggable()函数。对我而言,这是我的确切目标。
import java.util.logging.Filter;
import java.util.logging.LogRecord;
public class CustomFilter implements Filter {
@Override
public boolean isLoggable(LogRecord record) {
if(record.getMessage().contains("issued server command: /login")) {
return false;
}
else {
return true;
}
}
}
然后,您唯一要做的其他事情就是将此过滤器添加到服务器记录器。我使用的确切线是:
CustomFilter filter = new CustomFilter();
plugin.getServer().getLogger().setFilter(filter);
其中plugin是主类中插件的实例。
希望这可以帮助任何发现这一点的人。
这个插件能够从服务器日志中隐藏的东西
http://dev.bukkit.org/bukkit-plugins/thislogmustdie/
的源代码是here
某处在代码中有一个代码片段你想要什么做的......
太棒了,这会很好。现在我知道这是可能的,我可以为球员做更加安全的事情,因为他们总是会使用他们的一切 - 密码:P – Kammeot