怎么对右键进行监听啊,或者说监听某个玩家使用某种物品?开发包没给出这这样的方法
本帖最后由 q513902026 于 2016-4-29 16:08 编辑
使用Bukkit或者Forge提供的监听器
Bukkit: PlayerInteractEvent
Forge: ClickEvent MouseEvent PlayerInteractEvent
Bukkit 实现Listener接口的类中 使用@EventHandler注解的方法的传入参数类型代表要监听的事件
Forge 对任意非final static 无返回值的方法标记@SubscribeEvent或者其他类型功能的注解
传入参数类型表示要监听的方法(注意FORGE有些事件是要使用@EventHandler)
Bukkit:复制代码
Forge:复制代码
如果觉得上面不太明白
可以自己去看官方的教程
Bukkit:http://wiki.bukkit.org/Event_API_Reference
Forge:http://www.hakugyokurou.net/wordpress/?p=225 <--非官方的 找不到官方的在哪了
使用Bukkit或者Forge提供的监听器
Bukkit: PlayerInteractEvent
Forge: ClickEvent MouseEvent PlayerInteractEvent
Bukkit 实现Listener接口的类中 使用@EventHandler注解的方法的传入参数类型代表要监听的事件
Forge 对任意非final static 无返回值的方法标记@SubscribeEvent或者其他类型功能的注解
传入参数类型表示要监听的方法(注意FORGE有些事件是要使用@EventHandler)
Bukkit:
- Bukkit.getServer().getPluginManager().registerEvent(pl,new Listener(){
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent e)
- {
- //TODO 通过传入参数做你想做的事
- }
- });
Forge:
- ....
- //省略上文代码
- @SubscribeEvent
- public void onGuiButtonAction(GuiScreenEvent.ActionPerformedEvent event) {
- //TODO 做你想做的事
- }
- @EventHandler
- public void onModPreInit(FMLPreInitializationEvent event) {
- .....
- //省略上文代码
- MinecraftForge.EVENT_BUS.register(this);
- }
- ....
如果觉得上面不太明白
可以自己去看官方的教程
Bukkit:http://wiki.bukkit.org/Event_API_Reference
Forge:http://www.hakugyokurou.net/wordpress/?p=225 <--非官方的 找不到官方的在哪了
q513902026 发表于 2016-4-29 15:52
使用Bukkit或者Forge提供的监听器
Bukkit: PlayerInteractEvent
Forge: ClickEvent MouseEvent PlayerInt ...
那我要对物品进行判断,我要怎么得到原来物品的ID
jkaa13579 发表于 2016-4-29 16:57
那我要对物品进行判断,我要怎么得到原来物品的ID
Bukkit e.getItem().getTypeId(); 获得物品的id 不推荐使用(magic value
Forge GameRegister.findUniqueIdentifierFor(item).name 获得物品的内部名称
q513902026 发表于 2016-4-29 17:38
Bukkit e.getItem().getTypeId(); 获得物品的id 不推荐使用(magic value
Forge GameRegister.findUnique ...
我如果要让他停止当前的活动(例如右击不打开物品),要用什么方法实现?
jkaa13579 发表于 2016-4-29 18:37
我如果要让他停止当前的活动(例如右击不打开物品),要用什么方法实现? ...
e.setCancelled(true) 必须实现Cancelled接口或者被@Cancelled注解
q513902026 发表于 2016-4-29 20:05
e.setCancelled(true) 必须实现Cancelled接口或者被@Cancelled注解
怎么获取玩家当前手中的物品的ID
jkaa13579 发表于 2016-4-30 09:28
怎么获取玩家当前手中的物品的ID
Bukkit e.getPlayer().getItemInHand()
请多查查https://jd.bukkit.org/ 或者https://hub.spigotmc.org/javadocs/spigot/ 这些文档
很多问题是不应该问出来的
q513902026 发表于 2016-4-30 13:11
Bukkit e.getPlayer().getItemInHand()
请多查查https://jd.bukkit.org/ 或者https://hub.spigotmc.org/j ...
那个GetTypeId不能得到:后面的参数啊,bukkit好像没提供这样的参数?
jkaa13579 发表于 2016-4-30 22:41
那个GetTypeId不能得到:后面的参数啊,bukkit好像没提供这样的参数?
byte
item.getDate().getData()