iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
Software Development

成為童年的英雄,Minecraft Java 模組製作系列 第 17

Minecraft Mod 模組製作 [DAY17] 右鍵偵測 神奇桿桿(一)

  • 分享至 

  • xImage
  •  

前情提要

在我完成銀錠的製作後我好奇Minecraft中的事件偵測器是怎麼運行的,所以打算開心的專案研究一下

事件監視器

我們在註冊物品的時候我們有用到事件巴士Event Bus,我們可以在事件巴士中增加事件偵測器,透過偵測器我們可以在遊戲中出現特定的情況或玩家執行特定操作的時候觸發指定的程式碼。

我會開一個新的專案,把這部分的程式碼放在其他部分,與我的工業模組分開。

右鍵監視

我們可以在程式中加入一個監視玩家右鍵活動的程式,我們的目標是在玩家手持控制桿點右鍵的時候射出九支成九宮格的箭矢。
我們先加入右鍵監視功能

public class RightClick {
    @SubscribeEvent
    public static void RightClick(PlayerInteractEvent.RightClickItem event) {
        if (!event.getLevel().isClientSide) {
            Player player = event.getEntity();
            Component t = Component.literal("RightClick");
            player.sendSystemMessage(t);}
            }
          }
public static void RightClick(PlayerInteractEvent.RightClickItem event)

首先我們要先了解右鍵監視是RightClickItem的功能,是PlayerInteractEvent的其中一個功能,處理玩家的動作偵測,RightClickItem在當玩家手持(主手)物品右鍵時會被觸發。

if (!event.getLevel().isClientSide)

接著我們要確定偵測啟動的事件是發生在伺服器端而不是客戶端,因為伺服器端相較客戶端更方便安全

Player player = event.getEntity();

我們還需獲取觸發事件的玩家實例,event.getEntity()可以取得觸發事件的玩家實體

剩下的明天講


上一篇
Minecraft Mod 模組製作 [DAY16] 自己的模組自己漢化
下一篇
Minecraft Mod 模組製作 [DAY18] 右鍵偵測 神奇桿桿(二)
系列文
成為童年的英雄,Minecraft Java 模組製作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言