Skip to content
 
 

Repository files navigation

SweetAutoResidence

Minecraft 領地「自動圈地道具」插件

簡介

透過本插件,你可以定義多種自動圈地道具。玩家手持道具右鍵地面即可依照設定的大小自動圈出領地,過程中會扣除一個道具,但不會扣除玩家的金幣

你也可以為每種道具設定使用條件,例如:要求玩家目前領地數量為 0、要求玩家達到指定等級、要求玩家擁有特定權限等等。

特色

  • 多道具設定:每種道具可獨立設定領地大小、名稱格式、使用條件與提示訊息。
  • 選取範圍粒子效果:右鍵預覽圈地範圍時,以四角角柱 + 跟隨玩家高度的水平方框顯示選區。座標計算在異步線程完成,不佔用主線程,且完全可在 config.yml 自訂(粒子種類、密度、時長等)。
  • 頂天立地開關:每個道具可設定 size.full-height,開啟後 Y 軸自動包含世界最高與最低。
  • MiniMessage 訊息:所有訊息與道具文字皆支援 MiniMessage(漸層、十六進位色碼等),同時相容傳統 & 色碼。
  • 道具綁定:可將道具綁定給指定玩家,僅該玩家能使用。
  • Folia 支援

相容性

目前支援以下領地插件,兩者共用同一套選區粒子效果:

更多插件可透過編寫附屬來相容,詳見 SweetAutoResidence#checkAdapter

命令

根命令為 /sweetautoresidence,別名為 /sautoresidence/sautores/sares/sar
<> 包裹的為必填參數,以 [] 包裹的為可選參數。所有命令均只能由管理員執行。

命令 描述
/sares give <物品> [數量] [玩家] [-b] 給予自己或指定玩家圈地道具。參數順序不限(數量/玩家/-b 可任意排列)
/sares reload 重載插件設定檔

關於 give

  • 指定玩家時會自動綁定給該玩家(等同帶上 -b)。
  • -b / --bind:綁定道具,僅綁定的玩家可使用。未指定玩家時綁定給自己。
  • 未指定玩家則給自己。玩家名須為線上玩家
/sares give newbie              給自己 1 個(不綁定)
/sares give newbie -b           給自己並綁定給自己
/sares give newbie Steve        給 Steve 並綁定給 Steve
/sares give newbie Steve 5      給 Steve 5 個並綁定

設定檔

config.yml — 選取範圍粒子效果

selection-particle:
  enabled: true          # 總開關
  duration-ticks: 200    # 顯示總時長(tick,20 tick = 1 秒)
  interval-ticks: 10     # 重畫間隔(tick)
  pillar:                # 四角角柱(貫穿領地上下的標記柱)
    particle: VILLAGER_HAPPY
    vertical-step: 0.5   # 垂直間距,越小越密
  outline:               # 水平輪廓(跟隨玩家目前高度的方框)
    enabled: true
    particle: END_ROD
    step: 0.5            # 粒子間距
    ring-extend: 10.0    # 以玩家高度為中心,上下各延伸幾格

粒子名稱請填服務端版本對應的 Bukkit Particle 列舉名(大小寫不限)。 例:開心村民粒子在 1.20.4↓ 為 VILLAGER_HAPPY,1.20.5↑ 改名為 HAPPY_VILLAGER

道具設定(items/*.yml

每個道具檔可設定領地大小、頂天立地、偏移、名稱、條件、外觀與使用指令,詳見預設的 items/example.yml 內註解。其中:

size:
  x: 10
  y: 10
  z: 10
  full-height: false     # true = 頂天立地(Y 軸包含世界最高與最低,忽略 size.y)

變數

本插件向 PlaceholderAPI 註冊了以下變數:

%sares_residence_count%       玩家目前領地數量
%sares_residence_max_count%   玩家目前最大領地數量限制
%sares_random_<字典名>%       隨機生成一個名字,詳見 config.yml

開發者

jitpack

repositories {
    maven("https://jitpack.io")
}
dependencies {
    compileOnly("com.github.MrXiaoM:SweetAutoResidence:$VERSION")
}

編寫領地適配器附屬

編寫一個類別,實作 top.mrxiaom.sweet.autores.api.IResidenceAdapter,可參考內建的 AdapterResidence

這個類別必須有一個符合條件的建構子:有且僅有一個型別為 SweetAutoResidence(本插件主類)的參數。

package org.example;

import top.mrxiaom.sweet.autores.SweetAutoResidence;
import top.mrxiaom.sweet.autores.api.IResidenceAdapter;

public class MyAdapter implements IResidenceAdapter {
    public MyAdapter(SweetAutoResidence plugin) {
        // TODO
    }
}

選取範圍粒子效果由主插件的 SelectionParticleManager 統一處理,適配器只要在 showSelection 中呼叫 SelectionParticleManager.inst().show(player, area) 即可共用同一套效果與設定。

然後將資源檔 residence-adapter.yml 加入 jar,寫入如下內容:

class: '你實作的類別引用路徑,例如 org.example.MyAdapter'

將編譯後的領地適配器附屬 jar 放到 plugins/SweetAutoResidence/libraries/ 目錄中,重啟服務器即可使用。

About

Minecraft 領地自動圈地道具插件

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages