Skip to content

Commit

Permalink
Version 4.2 (#119)
Browse files Browse the repository at this point in the history
* Version 3.2.1

* Remove potential NPE issues

* Version 3.3.0

* Added config option to show or not show particles.

* Add Chinese Translation (#63)

* Rename zh_CN.json to zh_CN.yml (#64)

I'm so stupid. I made a mistake in the format. sorry!

* Add a clearer message when WBAPI is not found (#65)

It is not mandatory to use WorldBorderAPI, so it should be clear for the user
that they have a choice besides integrating with it.

* Remove `hooked` field (refactor) (#66)

Removing the `hooked` field because it was used locally
and could be removed as a simple refactoring to shorter and simpler code.

* Unify wording of WBAPI-excluded configs (#67)

* Unify wording of WBAPI-excluded configs

* Add `show-particles` to README

* Clarify message for show-particles setting

* Implement per-player border type (#69)

* Rename PlayerBorder.barrier to show

* Move player event handlers to PlayerListener

* Remove PlayerBorder

* Implement PerPlayerBorderProxy

Currently defaulting to Customer (non-wbapi) border

* Add BorderTypeCommand

* Create BorderType

* Add messages to BorderTypeCommand

* Prepare PerPlayerBorderProxy for handling edge cases

The user may not have a border type set, then we return with the default.
The user's border type may be unavailable now for two reasons:
1. Border type has been disabled after a server/plugin restart
2. Border type is obsolete and does not exist anymore (forward compatibility).

* Fix message reference at BorderTypeCommand

* Use null for missing wbapiBorder

It is fine since it is never used

* Avoid wbapi "border show" spam on player move

* At command, replace args.isEmpty() with size() != 1

To also show help if more parameters are passed than necessary

* Small refactor

* Fix set-type permission in addon.yml

* Update README

Co-authored-by: tastybento <[email protected]>

* Cleanup documentation (#70)

* Remove commented code

* Purify config.yml

As I see, this is just another place to duplicate our settings, documentation and changes to these.
This file is generated if missing.

* Cleanup Settings.java

This is another place where we duplicated documentation.

* Purify README.md

* Fix failing test: testIsUseWbapi

* Revert "Cleanup Settings.java"

This reverts commit f8e931c.

* Format Settings.java and add documentation link

* Regenerate config.yml

* Avoid raw Optional#get

* Enum elements should be all caps by convention.

* Use isEmpty.

Using Collection.size() to test for emptiness works, but using
Collection.isEmpty() makes the code more readable and can be more
performant. The time complexity of any isEmpty() method implementation
should be O(1) whereas some implementations of size() can be O(n).

In this case, it's not a big deal, just a code smell.

* Map to new variable

* 1.18 support for Particle.BARRIER_BLOCK

* Translate id.yml via GitLocalize (#71)

Co-authored-by: Alunite? <[email protected]>

* Translate hu.yml via GitLocalize (#72)

Co-authored-by: VerusBungee <[email protected]>

* Taiwan translation (#73)

* Translate zh-TW.yml via GitLocalize

* Update zh-TW.yml

Co-authored-by: davgo0103 <[email protected]>
Co-authored-by: tastybento <[email protected]>

* korean translation (#74)

* Translate ko.yml via GitLocalize

* Update ko.yml

Co-authored-by: chickiyeah <[email protected]>
Co-authored-by: tastybento <[email protected]>

* Polish translation (#75)

* Translate pl.yml via GitLocalize

* Update pl.yml

Co-authored-by: PICIGIT <[email protected]>
Co-authored-by: tastybento <[email protected]>

* Switch to use new Bukkit / Paper WorldBorder API (#78)

* Switch to use new Bukkit / Paper WorldBorder API

* Fix nether vanilla border (#80)

Vanilla World Border automatically converts coordinates by dimension multiplayer.
So in the nether it is required to counter it with extra processing.

Co-authored-by: BuildTools <[email protected]>

* disabled enderpearls and chorus fruits + fix (#82)

* run show task ; teleport visitors back in boundaries, bypass spectators (#83)

* Implement a toggle between border types just by writing border type command.

Requested by #87

* Implement new placeholder: %border_type%

Requested by #86

* Disable border changing from other worlds.

This could lead to a showing up a virtual border where it should not be.

* Translate ru.yml via GitLocalize (#93)

Co-authored-by: Marmur2020 <[email protected]>

* Translate pl.yml via GitLocalize (#92)

Co-authored-by: wiktorm12 <[email protected]>

* Update French translation (#91)

* Translate fr.yml via GitLocalize

* Translate fr.yml via GitLocalize

Co-authored-by: HipppB <[email protected]>
Co-authored-by: organizatsiya <[email protected]>

* Translate de.yml via GitLocalize (#89)

Co-authored-by: 0x4096 <[email protected]>

* Update Spanish translation (#90)

* Translate es.yml via GitLocalize

* Translate es.yml via GitLocalize

Co-authored-by: roy0510 <[email protected]>
Co-authored-by: plebexer <[email protected]>

* Update to Java 17

* Permission cannot have a - in it.

Changed the permission for the type command to "border.type" instead of
"border.set-type" because with the hyphen in it, Bukkit always grants
the permission for some reason.

Addresses #96

* Added test class for type command

Had to make some classes non-final so they can be mocked.

* Added IslandBorderCommand test class

* Add ${argLine} to get jacoco coverage

* Fix code smells.

* Fix code smell

* Fix Jacoco errors

* Use default settings in config if player does not have permissions. (#98)

Redoes the config.yml as well.
Adds test classes.

Relates to #97

* Config types (#99)

* Use default settings in config if player does not have permissions.

Redoes the config.yml as well.
Adds test classes.

Relates to #97

* Remove unused import.

* Adds offset config to enable border to be bigger than protection range

#75
Adds test class for ShowBarrier.

* Added ShowVirtualWorldBorder test class

#75

* Finishes up #97

* Fixes #100. Island border was set for home island not visitor's island.

* Fix addon.yml

#102

* Update Github Action build script

* Added distribution required for Github Action

* Update Jacoco

* Update pom.xml

* support < 0 in coloured virtual border (#103)

* Translate vi.yml via GitLocalize (#104)

Co-authored-by: Danh <[email protected]>

* Translate ja.yml via GitLocalize (#105)

Co-authored-by: mt-gitlocalize <[email protected]>

* Czech translation (#106)

* Translate cs.yml via GitLocalize

* Translate cs.yml via GitLocalize

---------

Co-authored-by: mt-gitlocalize <[email protected]>
Co-authored-by: tastybento <[email protected]>

* Croatian translation (#107)

* Translate hr.yml via GitLocalize

* Translate hr.yml via GitLocalize

---------

Co-authored-by: mt-gitlocalize <[email protected]>
Co-authored-by: tastybento <[email protected]>

* Translate ko.yml via GitLocalize (#109)

Co-authored-by: mt-gitlocalize <[email protected]>

* Italian translation (#108)

* Translate it.yml via GitLocalize

* Translate it.yml via GitLocalize

---------

Co-authored-by: mt-gitlocalize <[email protected]>
Co-authored-by: tastybento <[email protected]>

* Translate nl.yml via GitLocalize (#110)

Co-authored-by: mt-gitlocalize <[email protected]>

* Portuguese translation (#111)

* Translate pt.yml via GitLocalize

* Translate pt.yml via GitLocalize

---------

Co-authored-by: mt-gitlocalize <[email protected]>
Co-authored-by: tastybento <[email protected]>

* Translate ro.yml via GitLocalize (#112)

Co-authored-by: tastybento <[email protected]>

* Translate tr.yml via GitLocalize (#113)

Co-authored-by: mt-gitlocalize <[email protected]>

* Translate zh-CN.yml via GitLocalize (#114)

Co-authored-by: mt-gitlocalize <[email protected]>

* Translate zh-TW.yml via GitLocalize (#115)

Co-authored-by: mt-gitlocalize <[email protected]>

* BentoBox 2.0.0 API

* Translate uk.yml via GitLocalize (#117)

Co-authored-by: GIGABAIT <[email protected]>

* Version 4.2

* Adds option to not give a safety block. Fixes #118

---------

Co-authored-by: hutu <[email protected]>
Co-authored-by: Károly Ozsvárt <[email protected]>
Co-authored-by: gitlocalize-app[bot] <55277160+gitlocalize-app[bot]@users.noreply.github.com>
Co-authored-by: Alunite? <[email protected]>
Co-authored-by: VerusBungee <[email protected]>
Co-authored-by: davgo0103 <[email protected]>
Co-authored-by: chickiyeah <[email protected]>
Co-authored-by: PICIGIT <[email protected]>
Co-authored-by: evlad <[email protected]>
Co-authored-by: BuildTools <[email protected]>
Co-authored-by: BONNe <[email protected]>
Co-authored-by: Marmur2020 <[email protected]>
Co-authored-by: wiktorm12 <[email protected]>
Co-authored-by: HipppB <[email protected]>
Co-authored-by: organizatsiya <[email protected]>
Co-authored-by: 0x4096 <[email protected]>
Co-authored-by: roy0510 <[email protected]>
Co-authored-by: plebexer <[email protected]>
Co-authored-by: the456gamer <[email protected]>
Co-authored-by: Danh <[email protected]>
Co-authored-by: mt-gitlocalize <[email protected]>
Co-authored-by: GIGABAIT <[email protected]>
  • Loading branch information
1 parent c7b1afe commit db9899b
Show file tree
Hide file tree
Showing 20 changed files with 181 additions and 47 deletions.
9 changes: 5 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,22 @@ jobs:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 17
uses: actions/setup-java@v1
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: 17
- name: Cache SonarCloud packages
uses: actions/cache@v1
uses: actions/cache@v3
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache Maven packages
uses: actions/cache@v1
uses: actions/cache@v3
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
Expand Down
44 changes: 26 additions & 18 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@
<java.version>17</java.version>
<powermock.version>2.0.9</powermock.version>
<!-- More visible way how to change dependency versions -->
<spigot.version>1.19.3-R0.1-SNAPSHOT</spigot.version>
<bentobox.version>1.22.1-SNAPSHOT</bentobox.version>
<spigot.version>1.20.3-R0.1-SNAPSHOT</spigot.version>
<bentobox.version>2.0.0-SNAPSHOT</bentobox.version>
<!-- Revision variable removes warning about dynamic version -->
<revision>${build.version}-SNAPSHOT</revision>
<!-- This allows to change between versions and snapshots. -->
<build.version>4.1.1</build.version>
<build.version>4.2</build.version>
<build.number>-LOCAL</build.number>
<!-- Sonar Cloud -->
<sonar.projectKey>BentoBoxWorld_Border</sonar.projectKey>
Expand Down Expand Up @@ -120,21 +120,14 @@
</repositories>

<dependencies>
<!-- Spigot API -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>${spigot.version}</version>
<scope>provided</scope>
</dependency>
<!-- Mockito (Unit testing) -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.11.1</version>
<scope>test</scope>
</dependency>
<!-- Mockito (Unit testing) This goes at the top to ensure the dependencies are accurate. -->
<!-- This is required for PowerMockito to work and must be placed before it -->
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.30.2-GA</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
Expand All @@ -146,12 +139,25 @@
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.11.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>world.bentobox</groupId>
<artifactId>bentobox</artifactId>
<version>${bentobox.version}</version>
<scope>provided</scope>
</dependency>
<!-- Spigot API -->
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>${spigot.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>

<build>
Expand Down Expand Up @@ -263,13 +269,15 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<version>0.8.10</version>
<configuration>
<append>true</append>
<excludes>
<!-- This is required to prevent Jacoco from adding
synthetic fields to a JavaBean class (causes errors in testing) -->
<exclude>**/*Names*</exclude>
<!-- Prevents the Material is too large to mock error -->
<exclude>org/bukkit/Material*</exclude>
</excludes>
</configuration>
<executions>
Expand Down
19 changes: 19 additions & 0 deletions src/main/java/world/bentobox/border/Settings.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ public class Settings implements ConfigObject {
@ConfigEntry(path = "return-teleport")
private boolean returnTeleport = true;

@ConfigComment("")
@ConfigComment("Place a safety block under the player if they get teleported back into a non-safe spot.")
@ConfigEntry(path = "return-teleport-safety-block")
private boolean returnTeleportBlock = true;

@ConfigComment("")
@ConfigComment("Barrier blocks on/off. Only applies if the border type is BARRIER.")
@ConfigComment("If false, the border is indicated by particles only.")
Expand Down Expand Up @@ -173,4 +178,18 @@ public void setBarrierOffset(int barrierOffset) {
this.barrierOffset = barrierOffset;
getBarrierOffset();
}

/**
* @return the returnTeleportBlock
*/
public boolean isReturnTeleportBlock() {
return returnTeleportBlock;
}

/**
* @param returnTeleportBlock the returnTeleportBlock to set
*/
public void setReturnTeleportBlock(boolean returnTeleportBlock) {
this.returnTeleportBlock = returnTeleportBlock;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ public void onPlayerLeaveIsland(PlayerMoveEvent e) {
if (r != null) {
inTeleport.add(p.getUniqueId());
Location targetPos = r.getHitPosition().toLocation(p.getWorld(), p.getLocation().getYaw(), p.getLocation().getPitch());
if (!addon.getIslands().isSafeLocation(targetPos)) {
if (addon.getSettings().isReturnTeleportBlock() && !addon.getIslands().isSafeLocation(targetPos)) {
switch (targetPos.getWorld().getEnvironment()) {
case NETHER:
targetPos.getBlock().getRelative(BlockFace.DOWN).setType(Material.NETHERRACK);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ private void showPlayer(Player player, int i, int j, int k, boolean max) {
Location l = new Location(player.getWorld(), i, j, k);
Util.getChunkAtAsync(l).thenAccept(c -> {
if (addon.getSettings().isShowParticles()) {
if (j < 0 || j > player.getWorld().getMaxHeight()) {
if (j < player.getWorld().getMinHeight() || j > player.getWorld().getMaxHeight()) {
User.getInstance(player).spawnParticle(max ? MAX_PARTICLE : PARTICLE, PARTICLE_DUST_RED, i + 0.5D, j + 0.0D, k + 0.5D);
} else {
User.getInstance(player).spawnParticle(max ? MAX_PARTICLE : PARTICLE, PARTICLE_DUST_BLUE, i + 0.5D, j + 0.0D, k + 0.5D);
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/addon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ authors: [tastybento]

permissions:
'[gamemode].border.toggle':
description: Player can use border toggle command
description: Player can use border command
default: op
'[gamemode].border.set-type':
'[gamemode].border.type':
description: Player can use border type setting command
default: true
43 changes: 28 additions & 15 deletions src/main/resources/config.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,43 @@
# Border addon configuration file
# Border addon configuration file {$version}
# See the documentation at https://docs.bentobox.world/en/latest/addons/Border/
#
#
# This list stores GameModes in which Border addon should not work.
# To disable addon it is necessary to write its name in new line that starts with -. Example:
# disabled-gamemodes:
# - BSkyBlock
disabled-gamemodes: []
#
# Use vanilla world border.
use-vanilla: true
#
#
# Border type. Options are VANILLA, which uses the vanillia-style board or BARRIER,
# which uses particles and barrier blocks. If players have permission to use the barrier type
# they may override this option. If they do not have permission or lose the permission
# then this setting will be used.
type: VANILLA
#
# Teleport players back inside the border if they somehow get outside.
# This will teleport players back inside if they toggle the border with a command.
return-teleport: true
#
# Only applies if vanilla isn't used.
# Use barrier blocks. If false, the border is indicated by particles only.
#
# Place a safety block under the player if they get teleported back into a non-safe spot.
return-teleport-safety-block: true
#
# Barrier blocks on/off. Only applies if the border type is BARRIER.
# If false, the border is indicated by particles only.
use-barrier-blocks: true
#
# Default border behavior
#
# Turn on barrier by default.
show-by-default: true
#
# Only applies if vanilla isn't used.
#
# Only applies if VANILLA type isn't used.
# Show max-protection range border. This is a visual border only and not a barrier.
# This setting is useful for game modes where the protection range can move around, like Boxed
show-max-border: true
#
# Only applies if vanilla isn't used.
#
# Only applies if VANILLA type isn't used.
# Enables/disables all types of wall particles shown by the addon
show-particles: true
#
# Barrier offset.
# The barrier normally occurs at the protection range limit but this value extends it outwards.
# This does not extend the protection range, but will enable players to go outside their protected area.
# The barrier will not go further than the island distance. Minimum and default value is 0.
barrier-offset: 0
9 changes: 6 additions & 3 deletions src/main/resources/locales/cs.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# Translation by: CZghost

---
border:
toggle:
description: "přepíná hranice ostrova zapnuto/vypnuto"
description: přepíná hranice ostrova zapnuto/vypnuto
border-on: "&a Hranice zapnuta."
border-off: "&a Hranice vypnuta."
set-type:
description: změní typ ohraničení
changed: "&a Typ ohraničení změněn na &b[type]&a."
error-unavailable-type: "&c Tento typ je nedostupný nebo neexistuje."
10 changes: 10 additions & 0 deletions src/main/resources/locales/hr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
border:
toggle:
description: uključuje/isključuje obrub
border-on: "&a Border omogućen."
border-off: "&a Border onemogućen."
set-type:
description: mijenja vrstu obruba
changed: "&a Vrsta obruba promijenjena je u &b[type]&a."
error-unavailable-type: "&c Ova vrsta je nedostupna ili ne postoji."
4 changes: 4 additions & 0 deletions src/main/resources/locales/it.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ border:
description: attiva o disattiva il bordo
border-on: "&a Bordo attivato."
border-off: "&c Bordo disattivato."
set-type:
description: cambia il tipo di bordo
changed: "&a Il tipo di bordo è stato modificato in &b[type]&a."
error-unavailable-type: "&c Questo tipo non è disponibile o non esiste."
10 changes: 10 additions & 0 deletions src/main/resources/locales/ja.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
border:
toggle:
description: 境界線のオン/オフを切り替えます
border-on: "&a 境界線が有効です。"
border-off: "&a 境界線が無効になっています。"
set-type:
description: 境界線の種類を変更します
changed: "&a 枠線のタイプが &b[type]&a に変更されました。"
error-unavailable-type: "&c このタイプは使用できないか、存在しません。"
4 changes: 4 additions & 0 deletions src/main/resources/locales/ko.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ border:
description: 월드보더를 키거나 끕니다
border-on: "&a 월드 보더를 활성화 했습니다"
border-off: "&a 월드 보더를 비활성화 했습니다"
set-type:
description: 테두리 유형을 변경합니다.
changed: "&a 테두리 유형이 &b[type]&a로 변경되었습니다."
error-unavailable-type: "&c 이 유형은 사용할 수 없거나 존재하지 않습니다."
10 changes: 10 additions & 0 deletions src/main/resources/locales/nl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
border:
toggle:
description: schakelt de rand in/uit
border-on: "&a Rand ingeschakeld."
border-off: "&a Grens uitgeschakeld."
set-type:
description: verandert het type rand
changed: "&a Randtype gewijzigd in &b[type]&a."
error-unavailable-type: "&c Dit type is niet beschikbaar of bestaat niet."
4 changes: 4 additions & 0 deletions src/main/resources/locales/pt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ border:
description: Ativa/Desativa a borda
border-on: "&a Borda ativada."
border-off: "&a Borda desativada."
set-type:
description: muda o tipo da borda
changed: "&a Tipo de borda alterado para &b[type]&a."
error-unavailable-type: "&c Este tipo não está disponível ou não existe."
10 changes: 10 additions & 0 deletions src/main/resources/locales/ro.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
border:
toggle:
description: activează/dezactivează chenarul
border-on: "&a Chenar activat."
border-off: "&a Chenar este dezactivată."
set-type:
description: modifică tipul de chenar
changed: "&a Tipul de chenar s-a schimbat în &b[type]&a."
error-unavailable-type: "&c Acest tip este indisponibil sau nu există."
10 changes: 10 additions & 0 deletions src/main/resources/locales/tr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
border:
toggle:
description: kenarlığı açar/kapatır
border-on: "&a Sınır etkin."
border-off: "&a Kenarlık devre dışı."
set-type:
description: kenarlığın türünü değiştirir
changed: "&a Kenarlık türü &b[type]&a olarak değiştirildi."
error-unavailable-type: "&c Bu tür kullanılamıyor veya mevcut değil."
10 changes: 10 additions & 0 deletions src/main/resources/locales/uk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
border:
toggle:
description: вмикає/вимикає рамку
border-on: "& Межа ввімкнена."
border-off: "& Межа вимкнена."
set-type:
description: змінює тип рамки
changed: Тип рамки &a змінено на &b[type]&a.
error-unavailable-type: "&c Цей тип недоступний або не існує."
9 changes: 7 additions & 2 deletions src/main/resources/locales/vi.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
---
border:
toggle:
description: bật/tắt hiệu ứng rìa đảo
border-on: '&aĐã bật rìa đảo.'
border-off: '&aĐã tắt rìa đảo.'
border-on: "&aĐã bật rìa đảo."
border-off: "&aĐã tắt rìa đảo."
set-type:
description: thay đổi loại đường viền đảo
changed: "&a Loại đường viền đảo đã thay đổi thành &b[type]&a."
error-unavailable-type: "&c Loại này không có sẵn hoặc không tồn tại."
10 changes: 10 additions & 0 deletions src/main/resources/locales/zh-CN.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
border:
toggle:
description: 打开/关闭边框
border-on: "&a 启用边框。"
border-off: "&a 边框已禁用。"
set-type:
description: 更改边框的类型
changed: "&a 边框类型更改为 &b[type]&a。"
error-unavailable-type: "&c 此类型不可用或不存在。"
5 changes: 4 additions & 1 deletion src/main/resources/locales/zh-TW.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,7 @@ border:
description: 開啟/關閉 顯示邊界
border-on: "&a開啟 顯示邊界"
border-off: "&a關閉 顯示邊界"

set-type:
description: 更改邊框的類型
changed: "&a 邊框類型更改為 &b[type]&a。"
error-unavailable-type: "&c 此類型不可用或不存在。"

0 comments on commit db9899b

Please sign in to comment.