我有两个类的数据库,其中有一个方法“GetMoney”和命令
一般来说,关键是在数据库类中,我需要以某种方式获得一个播放器,或者更确切地说,是在命令类中编写的命令的发送者。我该怎么做?
//DB-GETMONEY
public int GetMoney(String name) throws Exception {
String tableName = this.plugin.getConfig().getString("tableName");
String dbNames = this.plugin.getConfig().getString("columnFirst");
String dbBalance = this.plugin.getConfig().getString("columnSecond");
Connection c = this.getConnection();
Statement s = c.createStatement();
ResultSet res = s.executeQuery("SELECT " + dbBalance +" FROM "+ tableName +" WHERE " + dbNames +" = '"+ name +"'" );
res.next();
return res.getInt(dbBalance);
}
//命令-onCommand
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
String name = sender.getName();;
if(args.length == 0 ) {
String showBalance = this.plugin.getConfig().getString("messages.showBalance");
try {
int balance = this.database.GetMoney(name);
showBalance = showBalance.replace("&", "\u00a7").replace("_nm", name).replace("_bl", String.valueOf(balance));
sender.sendMessage(showBalance);
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
我认为传球界面比一个简单的名字要好。首先,您必须确保发送者是玩家,而不是控制台命令发送者。在此之后,您可以传递玩家,在GetMoney()方法中,您只需通过Player获得玩家的名字。getName()方法。
编辑:我看到你需要命令发送者。你也可以传递它,而不是玩家,只需用命令发送者替换GetMoney参数,并删除我们确定发送者是否是玩家的实例检查。毕竟,你只需在任何地方再次检查它,然后再次将其转换为玩家。
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) {
if (sender instanceof Player) {
Player player = (Player) sender;
String showBalance = this.plugin.getConfig().getString("messages.showBalance");
try {
int balance = this.database.GetMoney(player);
showBalance = showBalance.replace("&", "\u00a7").replace("_nm", player.getName()).replace("_bl", String.valueOf(balance));
sender.sendMessage(showBalance);
} catch (Exception e) {
e.printStackTrace();
}
} else {
sender.sendMessage("Player only command.");
}
}
return false;
}
//DB - Getmoney
public int GetMoney(Player player) throws Exception {
String tableName = this.plugin.getConfig().getString("tableName");
String dbNames = this.plugin.getConfig().getString("columnFirst");
String dbBalance = this.plugin.getConfig().getString("columnSecond");
Connection c = this.getConnection();
Statement s = c.createStatement();
ResultSet res = s.executeQuery("SELECT " + dbBalance +" FROM "+ tableName +" WHERE " + dbNames +" = '"+ player.getName() +"'" );
res.next();
return res.getInt(dbBalance);
}
文件夹结构是正确的--也就是说,我有一个与node_modules/karma/bin匹配的嵌套文件夹结构,并且我在那个位置有一个名为karma的文件。 我在两个例子中都是从同一个位置开始的。在Visual Studio代码终端或windows命令提示符中运行此命令时,会出现以下错误:“'node_modules'未被识别为内部或外部命令、可操作程序或批处理文件。” 但在GitBash,它工作得很
Rexx的最大优势之一是能够创建可重用的脚本。 现在,在组织中,具有可重复使用的脚本是一个很大的附加值,可以节省执行常见重复性任务的时间。 例如,IT组织中的技术团队可能需要具有执行常见日常任务的脚本。 这些任务可以包括与操作系统交互。 然后可以对这些脚本进行编程以处理错误的返回码或错误。 Rexx提供了许多可用于执行此类重复任务的系统命令。 我们来看看Rexx中可用的一些系统命令。 dir 这是
本章将向您介绍JDB的基本命令。 启动会话后,这些命令用于调试程序。 以下是用于调试的命令列表。 名称 描述 help or ? 最重要的JDB命令; 它会显示一个包含简要说明的已识别命令列表。 run 启动JDB并设置必要的断点后,可以使用此命令开始执行并调试应用程序。 cont 在断点,异常或步骤之后继续执行已调试的应用程序。 print 显示Java对象和原始值。 dump 对于原始值,此命
问题内容: 我不知道如何通过JSch Shell通道发送命令。 我这样做,但是不起作用: 然后我读这样的输入: 问题答案: 如果挂起,则意味着您的“ while”永远不会结束(考虑您的代码可能不太可能),或者正在等待其“源”,即线程原因造成的阻塞。 如果没有看到调试信息,我就无法对您的代码进行故障排除。但是作为建议,您尝试过吗?这个想法是将控制台输入传递到“您的”输出,以便您可以“编写”它。为此,
问题内容: 我当前的部分看起来像这样: …这意味着我可以运行来启动服务器。到现在为止还挺好。 但是,我希望能够运行类似的东西并将参数传递给(例如=> )。这可能吗? 问题答案: 编辑: 可以将args传递给npm2.0.0 语法如下: 注意必要的。需要将传递给命令本身的参数和传递给脚本的参数分开。 所以如果你有 那么以下命令将是等效的: => => 为了读取命名参数,最好使用yargs或[mini