我在尝试使用 GeyserMC 的 API 检测单击表单按钮时遇到错误。这就是它所说的: 不可转换类型;不能将 '' 转换为 'org.geysermc.cumulus.response.SimpleFormResponse'
这就是我所做/尝试的错误:
package org.centoricraft.centoriui23;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.geysermc.cumulus.SimpleForm;
import org.geysermc.floodgate.api.FloodgateApi;
import org.geysermc.floodgate.api.player.FloodgatePlayer;
import org.geysermc.cumulus.response.CustomFormResponse;
import org.geysermc.cumulus.response.SimpleFormResponse;
public class CentoriUI23 extends JavaPlugin implements Listener {
private FloodgateApi floodgateApi;
@Override
public void onEnable() {
if (getServer().getPluginManager().getPlugin("Floodgate") != null) {
floodgateApi = FloodgateApi.getInstance();
getServer().getPluginManager().registerEvents(this, this);
} else {
getLogger().warning("Floodgate plugin not found! Disabling plugin...");
getServer().getPluginManager().disablePlugin(this);
}
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
if (floodgateApi.isFloodgatePlayer(player.getUniqueId())) {
Bukkit.getScheduler().runTaskLater(this, () -> {
FloodgatePlayer floodgatePlayer = floodgateApi.getPlayer(player.getUniqueId());
if (floodgatePlayer != null) {
SimpleForm form = SimpleForm.builder()
.title("Centori UI")
.button("Play")
.button("Discord")
.build();
form.setResponseHandler((formPlayer, responseData) -> {
if (responseData instanceof SimpleFormResponse) {
SimpleFormResponse response = (SimpleFormResponse) responseData;
int buttonId = response.getClickedButtonId();
if (buttonId == 0) {
// Handle "Play" button click
} else if (buttonId == 1) {
// Handle "Discord" button click
}
} else if (responseData instanceof CustomFormResponse) {
CustomFormResponse response = (CustomFormResponse) responseData;
// Handle custom form response
}
});
floodgatePlayer.sendForm(form);
}
}, 20L); // Delay for 1 second (20 ticks)
}
}
}