我再次编写另一个银行系统插件,但这次是使用ATM。我正在尝试弄清楚如何在单击该选项后获得玩家聊天输入,以防止单击100次以在银行帐户上存入50,000美元。
我正在用Paper-Spigot 1.14.4编写这个插件,我尝试了以下步骤:
AsyncPlayerChatEvent
作为一个单独的类,仅当我向插件管理器注册事件时才激活:Bukkit.getPluginManager().registerEvents(new ChatListener(), Main.getPlugin());
私有的
AsyncPlayerChatEvent
变量 e
,并在需要时在该方法中调用它。String input = getChat().getMessage();
我当前的聊天监听器()
方法:
public void chatListener(Inventory inv, Player pl) {
pl.closeInventory();
pl.sendMessage("§6Please enter your amount:");
String input = getChat().getMessage();
if(input.matches("[0-9]+")) {
pl.openInventory(inv);
inv.setItem(0, new ItemStack(Material.AIR));
inv.setItem(0, CustomHeads.customHead(CustomHeads.BITCOIN,
input));
} else {
pl.sendMessage("§cPlease enter only numeric characters!");
}
}
AsyncPlayerChat事件
获取方法:
public AsyncPlayerChatEvent getChat() {
return chat;
}
我希望在消息“请输入您的金额:”出现后,玩家的消息保存在< code>input变量中。
当我创建<code>System.out时。println(input),控制台不显示任何内容,既不显示错误,也不显示任何警告。
创建一个< code > AsyncPlayerChatEvent 和一个< code >公共静态ArrayList。
exampleschatevent . class
public static ArrayList<Player> waitingForAmountPlayers = new ArrayList<>();
public void onChat(AsyncPlayerChatEvent e) {
Player p = e.getPlayer();
if (waitingForAmountPlayers.indexOf(p) != -1) {
//
// YOUR CODE
//
waitingForAmountPlayers.remove(p);
}
}
当你想在聊天中输入玩家数量时,不要忘记将玩家添加到waitingForAmountPlayers
(ExampleChatEvent.waitingForAmountPlayers.add(p);
)。
所以我想要一个“Void Repository”,通过它可以访问不一定在实体上操作的存储过程。 但这当然不起作用,因为期望是一个实体。 有没有一种方法可以使用注释而无需创建虚拟实体,或者我是否坚持使用使用通过准备好的语句进行查询的已实现类? 因为老实说,这很难看:
问题内容: 我看到了一些这样的代码: 我以为应该有一个? 为什么这段代码这样做呢? 问题答案: 如果您希望当前执行的方法仍引发异常,同时允许适当地清理资源,则这很有用。下面是处理调用方法中的异常的具体示例。
问题内容: 我正在开发一个简单的Webapp,它将域模型公开为RESTful资源。我打算将JPA2(Hibernate)与SpringMVC REST支持一起使用。 在将Hibernate实体编组为XML / JSON时,如果该实体分离,它将为惰性子项关联抛出LazyLoadingException。如果实体仍然连接到Hibernate Session,它将几乎加载整个数据库。 我尝试使用推土机C
大概是这样的: 谢谢[已解决] 也感谢Umer Farooq的回答:从lambda内部修改局部变量
问题内容: 我有一种方法可以做很多事情。其中包括进行大量插入和更新。因此宣布… 它的工作完全符合预期,我对此没有任何问题。但是在某些情况下,尽管没有异常,但我还是想强制回滚…目前,当我遇到合适的条件时,我正在强制异常,但这很丑陋,我不喜欢它。 我可以以某种方式积极地调用回滚吗?异常调用它…我在想也许我也可以。 问题答案: 在Spring Transactions中,您使用。 您在这里遇到的问题是您
使用PHP-PDO和SQLite,我可以编写一个PDO调用来检查表中是否存在某一行(通过检查主键),如果不存在,则编写另一个PDO调用来创建该行。但我觉得应该可以在一个命令中实现……类似于“如果不存在,则创建表”。是否有类似“不存在时插入行”的内容?