Class World.Broadcast

java.lang.Object
handling.world.World.Broadcast
Enclosing class:
World

public static class World.Broadcast extends Object
跨頻道訊息廣播子系統。

提供把封包送往所有頻道、特定玩家或公會/家族成員的靜態工具方法。多數方法會對 ChannelServer.getAllInstances() 全頻道扇出,或透過 World.Find.findChannel(int) 定位玩家所在頻道後對其連線送出封包;具跨頻道副作用。

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    broadcastGMMessage(byte[] message)
    對所有頻道廣播 GM 專用訊息封包。
    static void
    broadcastMessage(byte[] message)
    對所有頻道廣播一般訊息封包。
    static void
    broadcastSmega(byte[] message)
    對所有頻道廣播超級擴音器(喇叭)訊息封包。
    static void
    sendFamilyPacket(int targetIds, byte[] packet, int exception, int guildid)
    把家族封包送給單一指定角色,並驗證其家族歸屬。
    static void
    sendGuildPacket(int targetIds, byte[] packet, int exception, int guildid)
    把公會封包送給單一指定角色,並驗證其公會歸屬。
    static void
    sendPacket(int targetId, byte[] packet)
    把封包送給單一指定角色(可跨頻道)。
    static void
    sendPacket(List<Integer> targetIds, byte[] packet, int exception)
    把封包送給一批指定角色(可跨頻道),並排除其中一名角色。

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Broadcast

      public Broadcast()
  • Method Details

    • broadcastSmega

      public static void broadcastSmega(byte[] message)
      對所有頻道廣播超級擴音器(喇叭)訊息封包。

      對每個 ChannelServer 呼叫其 broadcastSmega;具跨頻道封包送出副作用。

      Parameters:
      message - 已組好的喇叭訊息封包位元組
    • broadcastGMMessage

      public static void broadcastGMMessage(byte[] message)
      對所有頻道廣播 GM 專用訊息封包。

      對每個 ChannelServer 呼叫其 broadcastGMMessage(僅在線 GM 收得到);具跨頻道封包送出副作用。

      Parameters:
      message - 已組好的 GM 訊息封包位元組
    • broadcastMessage

      public static void broadcastMessage(byte[] message)
      對所有頻道廣播一般訊息封包。

      對每個 ChannelServer 呼叫其 broadcastMessage(全頻道所有在線玩家皆收得到);具跨頻道封包送出副作用。

      Parameters:
      message - 已組好的訊息封包位元組
    • sendPacket

      public static void sendPacket(List<Integer> targetIds, byte[] packet, int exception)
      把封包送給一批指定角色(可跨頻道),並排除其中一名角色。

      逐一以 World.Find.findChannel(int) 定位每名目標所在頻道,於該頻道的角色儲存區取出角色後對其連線送出封包。 找不到頻道(離線)或等於 exception 的目標會略過;具跨頻道封包送出副作用。

      Parameters:
      targetIds - 目標角色 ID 清單
      packet - 已組好的封包位元組
      exception - 要排除的角色 ID(通常為發送者自身)
    • sendPacket

      public static void sendPacket(int targetId, byte[] packet)
      把封包送給單一指定角色(可跨頻道)。

      World.Find.findChannel(int) 定位目標所在頻道,於該頻道的角色儲存區取出角色後對其連線送出封包; 目標離線(找不到頻道)或不存在時靜默不做事。具跨頻道封包送出副作用。

      Parameters:
      targetId - 目標角色 ID
      packet - 已組好的封包位元組
    • sendGuildPacket

      public static void sendGuildPacket(int targetIds, byte[] packet, int exception, int guildid)
      把公會封包送給單一指定角色,並驗證其公會歸屬。

      World.Find.findChannel(int) 定位目標所在頻道後取出角色,僅當該角色仍屬於 guildid 公會時才送出; 目標等於 exception、離線或公會不符時靜默不送。具跨頻道封包送出副作用。

      Parameters:
      targetIds - 目標角色 ID
      packet - 已組好的公會封包位元組
      exception - 要排除的角色 ID
      guildid - 預期的公會 ID(角色公會不符則不送)
    • sendFamilyPacket

      public static void sendFamilyPacket(int targetIds, byte[] packet, int exception, int guildid)
      把家族封包送給單一指定角色,並驗證其家族歸屬。

      World.Find.findChannel(int) 定位目標所在頻道後取出角色,僅當該角色仍屬於 guildid 家族時才送出; 目標等於 exception、離線或家族不符時靜默不送。具跨頻道封包送出副作用。

      Parameters:
      targetIds - 目標角色 ID
      packet - 已組好的家族封包位元組
      exception - 要排除的角色 ID
      guildid - 預期的家族 ID(參數名沿用 guildid,實際比對 getFamilyId()