所以我一直在尝试编写一个简单的插件来删除一个块。放置后5秒或10滴答声。但我遇到了一些问题。当我放置一个块来测试它时,我得到了下面所述的错误,因为我在编程方面不是很有经验,我不知道如何修复它。我们将不胜感激。
我的错误是:
11:32:29 ERROR]: Could not pass event BlockPlaceEvent to firstPlugin v1.0
java.lang.ClassCastException: class me.chappiemwoan.firstPlugin.events.firstPluginEvents cannot be cast to class org.bukkit.plugin.Plugin (me.chappiemwoan.firstPlugin.events.firstPluginEvents is in unnamed module of loader org.bukkit.plugin.java.PluginClassLoader @1f0389ee; org.bukkit.plugin.Plugin is in unnamed module of loader 'app')
at me.chappiemwoan.firstPlugin.events.firstPluginEvents.blockTimer(firstPluginEvents.java:40) ~[?:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor1.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.4.jar:git-Paper-276]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.4.jar:git-Paper-276]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.4.jar:git-Paper-276]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:607) ~[patched_1.16.4.jar:git-Paper-276]
at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.callBlockPlaceEvent(CraftEventFactory.java:378) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.ItemStack.placeItem(ItemStack.java:280) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.PlayerInteractManager.a(PlayerInteractManager.java:533) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1535) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:27) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.PacketPlayInUseItem.a(PacketPlayInUseItem.java:5) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:23) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1136) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1129) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1090) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1004) ~[patched_1.16.4.jar:git-Paper-276]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.4.jar:git-Paper-276]
at java.lang.Thread.run(Thread.java:832) [?:?]
下面是我的代码。
package me.chappiemwoan.firstPlugin.events;
import me.chappiemwoan.firstPlugin.*;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import me.chappiemwoan.firstPlugin.Override;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.entity.EntityPickupItemEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.plugin.Plugin;
public class firstPluginEvents implements Listener {
@EventHandler
public static void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
player.sendMessage(ChatColor.RED + "WELCOME TO THE SERVER");
}
@EventHandler
public static void onItemPickUp(PlayerPickupItemEvent event1) {
Player player1 = event1.getPlayer();
player1.kickPlayer("haha you thought");
}
@EventHandler
public void blockTimer(BlockPlaceEvent event2) {
Block block = event2.getBlock();
Location location = block.getLocation();
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin) this, new Runnable() {
@Override
public void run() {
location.getBlock().setType(Material.AIR);
}
}, 10L);
}
}
我不确定你现在是否已经解决了这个问题,但我也有同样的问题,在做了一些挖掘之后,我发现“插件”部分没有在你编写代码的类中定义。如果您在主类中使用该代码,它应该可以正常工作,但由于您试图在不同的类“FirstPlugineEvents”中运行它,它不知道“plugin”是什么意思。您必须将顶部代码放在主类“on_enable”中,将底部代码放在“FirstPlugineEvents”类中。这将告诉你的插件,“插件”是指你正在编写的实际插件。这个链接更详细地介绍了这一点。
把这个放在你的主类中:
new firstPluginEvents(this);
把这个放到你的“firstPluginEvetns”课上:
private MainClass plugin;
public firstPluginEvents(MainClass plugin){
this.plugin = plugin;
}
Minecraft插件计划SyncDelayed任务错误
所以我现在发现计时器肯定是问题所在。没有定时器,它工作得很好。我几乎肯定知道问题出在这一部分,((plugin)this,new Runnable()
但我不知道如何修复它。
问题内容: 我想创建一个应用程序,其中应处理某些事件,就像它们被传递到父容器一样。例如,我有一个包含的。顶部立即实现了鼠标按下和拖动。为了使事件看起来像是到达的,而不是标签本身,我需要做什么。(更改源对象很重要) 是否有比实际实现事件并在父级中复制事件更好的解决方案?(在某些对象> 5个孩子之后,这将变得乏味)。 问题答案: 在事件侦听器中,您可以将事件调度到父组件。 作为事件处理函数参数: 但是
问题内容: 在Tkinter中是否可以将事件直接传递给父窗口小部件? 我有一个画布,该画布被其他画布的网格覆盖(是复数吗?),我使用方法添加了该画布。我希望某些事件(例如鼠标释放事件)由父画布处理。 如果仅将事件绑定到父方法,则和坐标相对于捕获事件的子画布而言。 问题答案: Tkinter不会将事件传递给父窗口小部件。但是,您可以通过使用绑定标签(或“ bindtags”)来模拟效果。 我能给出的
我正在使用gradle liquibase插件(https://github.com/liquibase/liquibase-gradle-plugin)但我不知道如何传递参数和值。 我想基于标记和日期构建回滚,但我只能使用以下命令回滚标记: 我不明白我应该如何传递数据、标签或计数。 我的成绩。构建非常简单:
本文向大家介绍怎样将事件传递给子组件?相关面试题,主要包含被问及怎样将事件传递给子组件?时的应答技巧和注意事项,需要的朋友参考一下 这道题出的有问题。 一般情况下我们父组件向子组件传递的不是事件,而是事件处理函数
如果我手动生成一个带有swagger-codemen-cli的客户端API,比如: ... 然后我会得到我需要的所有课程。 但是如果从maven内部运行swagger codegen maven插件,如何传递参数——完全解析? 如果没有完全解析,我会错过几个类,比如InlineResponse200。 最好的问候Fredrik
我变得非常喜欢Google Gauva的EventBus,以至于我想把它包含在我的Swing GridBagBuilder API中。我们的目标是获取一个Swing组件,在任意事件中用它做一些事情,并将其订阅到EventBus。问题是我认为EventBus完成的反射操作不喜欢我的任意事件类型的泛型。 本质上,该方法接受双消费者,其中C是Swing组件,E是订阅EventBus的任意事件类型。 事件