Skip to content

Commit 1b63c02

Browse files
committed
Added language Chinese(traditional) and disable in specific worlds feature
1 parent 8e1544c commit 1b63c02

File tree

6 files changed

+60
-1
lines changed

6 files changed

+60
-1
lines changed

config.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,6 @@ lockables:
4343
- DARK_OAK_DOOR
4444
- IRON_DOOR_BLOCK
4545
protection-exempt:
46-
- nothing
46+
- nothing
47+
disable-worlds:
48+
- world_without_lockettepro

lang_zh-tw.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Traditional Chinese translation by MapleHuang([email protected])
2+
command-usage: "&6[LockettePro]&bLockettePro 插件說明\n&c1. 為箱子新增或刪除使用者,首先右鍵選取一個告示牌, 然後輸入/lock 行號 玩家名稱 即可\n&c2. 管理員重新載入插件設定,使用 /lock reload\nLockettePro by connection_lost"
3+
you-can-quick-lock-it: '&6[LockettePro]&6手持告示牌對目標方塊點右鍵即可上鎖'
4+
you-can-manual-lock-it: '&6[LockettePro]&6貼上一個告示牌並寫上[Private]即可上鎖'
5+
config-reloaded: '&6[LockettePro]&a設定已重新載入'
6+
no-permission: '&6[LockettePro]&c權限不足! 無法使用該指令'
7+
no-sign-selected: '&6[LockettePro]&c請先右鍵選擇一個告示牌'
8+
sign-need-reselect: '&6[LockettePro]&c請重新選擇一個告示牌'
9+
line-is-too-long: '&6[LockettePro]&c設定輸入告示牌的文字過長!'
10+
cannot-change-this-line: '&6[LockettePro]&c無法修改這一行'
11+
sign-changed: '&6[LockettePro]&a告示牌已修改'
12+
locked-quick: '&6[LockettePro]&a已成功上鎖'
13+
additional-sign-added-quick: '&6[LockettePro]&a更多的使用者告示牌已新增'
14+
cannot-lock-quick: '&6[LockettePro]&c這個方塊無法上鎖'
15+
cannot-add-additional-sign-quick: '&6[LockettePro]&c無法在這裡新增告示牌'
16+
locked-manual: '&6[LockettePro]&a已成功上鎖'
17+
additional-sign-added-manual: '&6[LockettePro]&a更多的使用者告示牌已新增'
18+
cannot-lock-manual: '&6[LockettePro]&c這個方塊無法上鎖'
19+
cannot-add-additional-sign-manual: '&6[LockettePro]&c無法在這裡新增告示牌'
20+
not-locked-yet-manual: '&6[LockettePro]&c這個方塊還沒有上鎖'
21+
cannot-lock-door-nearby-manual: '&6[LockettePro]&c這附近已經有其他人上鎖的門'
22+
block-already-locked-manual: '&6[LockettePro]&c這個方塊已經被上鎖了'
23+
block-is-not-lockable: '&6[LockettePro]&c這個方塊無法上鎖'
24+
sign-selected: '&6[LockettePro]&a您選擇了一個告示牌,輸入/lock 行號 玩家名稱 來修改它'
25+
break-own-lock-sign: '&6[LockettePro]&a上鎖的告示牌已拆除'
26+
cannot-break-this-lock-sign: '&6[LockettePro]&c無法拆除其他玩家上鎖的告示牌'
27+
break-own-additional-sign: '&6[LockettePro]&a更多使用者的告示牌已拆除'
28+
break-redundant-additional-sign: '&6[LockettePro]&a更多使用者的告示牌已拆除'
29+
cannot-break-this-additional-sign: '&6[LockettePro]&c無法拆除其他玩家上鎖的告示牌'
30+
block-is-locked: '&6[LockettePro]&c這個方塊已被上鎖'
31+
cannot-interfere-with-others: '&6[LockettePro]&c無法在已上鎖的方塊附近放置其他物件'
32+
sign-error: '&4[ERROR]'

src/me/crafter/mc/lockettepro/BlockEnvironmentListener.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class BlockEnvironmentListener implements Listener{
2323
@EventHandler(priority = EventPriority.HIGH)
2424
public void onEntityExplode(EntityExplodeEvent event){
2525
if (Config.isProtectionExempted("explosion")) return;
26+
if (event.getLocation() != null && Config.isDisabledWorld(event.getLocation().getWorld().getName())) return;
2627
Iterator<Block> it = event.blockList().iterator();
2728
while (it.hasNext()) {
2829
Block block = it.next();
@@ -34,6 +35,7 @@ public void onEntityExplode(EntityExplodeEvent event){
3435
@EventHandler(priority = EventPriority.HIGH)
3536
public void onBlockExplode(BlockExplodeEvent event){
3637
if (Config.isProtectionExempted("explosion")) return;
38+
if (event.getBlock() != null && Config.isDisabledWorld(event.getBlock().getWorld().getName())) return;
3739
Iterator<Block> it = event.blockList().iterator();
3840
while (it.hasNext()) {
3941
Block block = it.next();
@@ -45,6 +47,7 @@ public void onBlockExplode(BlockExplodeEvent event){
4547
@EventHandler(priority = EventPriority.HIGH)
4648
public void onStructureGrow(StructureGrowEvent event){
4749
if (Config.isProtectionExempted("growth")) return;
50+
if (event.getWorld() != null && Config.isDisabledWorld(event.getWorld().getName())) return;
4851
for (BlockState blockstate : event.getBlocks()){
4952
if (LocketteProAPI.isProtected(blockstate.getBlock())){
5053
event.setCancelled(true);
@@ -57,6 +60,7 @@ public void onStructureGrow(StructureGrowEvent event){
5760
@EventHandler(priority = EventPriority.HIGH)
5861
public void onPistonExtend(BlockPistonExtendEvent event){
5962
if (Config.isProtectionExempted("piston")) return;
63+
if (event.getBlock() != null && Config.isDisabledWorld(event.getBlock().getWorld().getName())) return;
6064
for (Block block : event.getBlocks()){
6165
if (LocketteProAPI.isProtected(block)){
6266
event.setCancelled(true);
@@ -69,6 +73,7 @@ public void onPistonExtend(BlockPistonExtendEvent event){
6973
@EventHandler(priority = EventPriority.HIGH)
7074
public void onPistonRetract(BlockPistonRetractEvent event){
7175
if (Config.isProtectionExempted("piston")) return;
76+
if (event.getBlock() != null && Config.isDisabledWorld(event.getBlock().getWorld().getName())) return;
7277
for (Block block : event.getBlocks()){
7378
if (LocketteProAPI.isProtected(block)){
7479
event.setCancelled(true);
@@ -81,6 +86,7 @@ public void onPistonRetract(BlockPistonRetractEvent event){
8186
@EventHandler(priority = EventPriority.HIGH)
8287
public void onBlockRedstoneChange(BlockRedstoneEvent event){
8388
if (Config.isProtectionExempted("redstone")) return;
89+
if (event.getBlock() != null && Config.isDisabledWorld(event.getBlock().getWorld().getName())) return;
8490
if (LocketteProAPI.isProtected(event.getBlock())){
8591
event.setNewCurrent(event.getOldCurrent());
8692
}
@@ -90,6 +96,7 @@ public void onBlockRedstoneChange(BlockRedstoneEvent event){
9096
@EventHandler(priority = EventPriority.HIGH)
9197
public void onVillagerOpenDoor(EntityInteractEvent event){
9298
if (Config.isProtectionExempted("villager")) return;
99+
if (event.getBlock() != null && Config.isDisabledWorld(event.getBlock().getWorld().getName())) return;
93100
// Explicitly to villager vs all doors
94101
if (event.getEntity() instanceof Villager &&
95102
(LocketteProAPI.isSingleDoorBlock(event.getBlock()) || LocketteProAPI.isDoubleDoorBlock(event.getBlock())) &&
@@ -102,6 +109,7 @@ public void onVillagerOpenDoor(EntityInteractEvent event){
102109
@EventHandler(priority = EventPriority.HIGH)
103110
public void onEndermanGreif(EntityInteractEvent event){
104111
if (Config.isProtectionExempted("enderman")) return;
112+
if (event.getBlock() != null && Config.isDisabledWorld(event.getBlock().getWorld().getName())) return;
105113
if (event.getEntity() instanceof Enderman && LocketteProAPI.isProtected(event.getBlock())){
106114
event.setCancelled(true);
107115
}

src/me/crafter/mc/lockettepro/BlockInventoryMoveListener.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class BlockInventoryMoveListener implements Listener {
1515

1616
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
1717
public void onInventoryMove(InventoryMoveItemEvent event){
18+
if (event.getSource() != null && Config.isDisabledWorld(event.getSource().getLocation().getWorld().getName())) return;
1819
if (Config.isItemTransferOutBlocked() || Config.getHopperMinecartAction() != (byte)0){
1920
if (isInventoryLocked(event.getSource())){
2021
if (Config.isItemTransferOutBlocked()){

src/me/crafter/mc/lockettepro/BlockPlayerListener.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public void onPlayerQuickLockChest(PlayerInteractEvent event){
2828
if (event.isCancelled()) return;
2929
// Check quick lock enabled
3030
if (Config.getQuickProtectAction() == (byte)0) return;
31+
// Check world enabled
32+
if (event.getPlayer() != null && event.getPlayer().getWorld() != null && Config.isDisabledWorld(event.getPlayer().getWorld().getName())) return;
3133
// Get player and action info
3234
Action action = event.getAction();
3335
Player player = event.getPlayer();
@@ -97,6 +99,7 @@ public void onPlayerQuickLockChest(PlayerInteractEvent event){
9799
@EventHandler(priority = EventPriority.NORMAL)
98100
public void onManualLock(SignChangeEvent event){
99101
if (event.getBlock().getType() != Material.WALL_SIGN) return;
102+
if (event.getPlayer() != null && event.getPlayer().getWorld() != null && Config.isDisabledWorld(event.getPlayer().getWorld().getName())) return;
100103
String topline = event.getLine(0);
101104
Player player = event.getPlayer();
102105
/* Issue #46 - Old version of Minecraft trim signs in unexpected way.
@@ -167,6 +170,7 @@ public void onManualLock(SignChangeEvent event){
167170
// Player select sign
168171
@EventHandler(priority = EventPriority.LOW)
169172
public void playerSelectSign(PlayerInteractEvent event){
173+
if (event.getPlayer() != null && Config.isDisabledWorld(event.getPlayer().getWorld().getName())) return;
170174
if (event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getClickedBlock().getType() == Material.WALL_SIGN){
171175
Block block = event.getClickedBlock();
172176
Player player = event.getPlayer();
@@ -183,6 +187,7 @@ public void playerSelectSign(PlayerInteractEvent event){
183187
@EventHandler(priority = EventPriority.HIGH)
184188
public void onAttemptBreakSign(BlockBreakEvent event){
185189
if (event.isCancelled()) return;
190+
if (event.getPlayer() != null && event.getPlayer().getWorld() != null && Config.isDisabledWorld(event.getPlayer().getWorld().getName())) return;
186191
Block block = event.getBlock();
187192
Player player = event.getPlayer();
188193
if (player.hasPermission("lockettepro.admin.break")) return;
@@ -217,6 +222,7 @@ public void onAttemptBreakSign(BlockBreakEvent event){
217222
@EventHandler(priority = EventPriority.HIGH)
218223
public void onAttemptBreakLockedBlocks(BlockBreakEvent event){
219224
if (event.isCancelled()) return;
225+
if (event.getPlayer() != null && event.getPlayer().getWorld() != null && Config.isDisabledWorld(event.getPlayer().getWorld().getName())) return;
220226
Block block = event.getBlock();
221227
Player player = event.getPlayer();
222228
if (LocketteProAPI.isLocked(block) || LocketteProAPI.isUpDownLockedDoor(block)){
@@ -229,6 +235,7 @@ public void onAttemptBreakLockedBlocks(BlockBreakEvent event){
229235
// Protect block from being used & handle double doors
230236
@EventHandler(priority = EventPriority.HIGH)
231237
public void onAttemptInteractLockedBlocks(PlayerInteractEvent event){
238+
if (event.getPlayer() != null && event.getPlayer().getWorld() != null && Config.isDisabledWorld(event.getPlayer().getWorld().getName())) return;
232239
Action action = event.getAction();
233240
Block block = event.getClickedBlock();
234241
if (LockettePro.needCheckHand()){
@@ -288,6 +295,7 @@ public void onAttemptInteractLockedBlocks(PlayerInteractEvent event){
288295
@EventHandler(priority = EventPriority.HIGH)
289296
public void onAttemptPlaceInterfereBlocks(BlockPlaceEvent event){
290297
if (event.isCancelled()) return;
298+
if (event.getPlayer() != null && event.getPlayer().getWorld() != null && Config.isDisabledWorld(event.getPlayer().getWorld().getName())) return;
291299
Block block = event.getBlock();
292300
Player player = event.getPlayer();
293301
if (player.hasPermission("lockettepro.admin.interfere")) return;
@@ -302,6 +310,7 @@ public void onAttemptPlaceInterfereBlocks(BlockPlaceEvent event){
302310
@EventHandler(priority = EventPriority.MONITOR)
303311
public void onPlaceFirstBlockNotify(BlockPlaceEvent event){
304312
if (event.isCancelled()) return;
313+
if (event.getPlayer() != null && event.getPlayer().getWorld() != null && Config.isDisabledWorld(event.getPlayer().getWorld().getName())) return;
305314
Block block = event.getBlock();
306315
Player player = event.getPlayer();
307316
if (!player.hasPermission("lockettepro.lock")) return;

src/me/crafter/mc/lockettepro/Config.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public class Config {
3939
private static long lockdefaultcreatetime = -1L;
4040
private static String lockexpirestring = "";
4141
private static Set<String> protectionexempt = new HashSet<String>();
42+
private static Set<String> disableWorlds = new HashSet<String>();
4243

4344
public Config(Plugin _plugin){
4445
plugin = _plugin;
@@ -76,10 +77,12 @@ public static void reload(){
7677
List<String> additionalstringlist = config.getStringList("additional-signs");
7778
List<String> everyonestringlist = config.getStringList("everyone-signs");
7879
List<String> protectionexemptstringlist = config.getStringList("protection-exempt");
80+
List<String> disableworldsstringlist = config.getStringList("disable-worlds");
7981
privatestrings = new HashSet<String>(privatestringlist);
8082
additionalstrings = new HashSet<String>(additionalstringlist);
8183
everyonestrings = new HashSet<String>(everyonestringlist);
8284
protectionexempt = new HashSet<String>(protectionexemptstringlist);
85+
disableWorlds = new HashSet<String>(disableworldsstringlist);
8386
defaultprivatestring = privatestringlist.get(0);
8487
defaultadditionalstring = additionalstringlist.get(0);
8588

@@ -287,4 +290,8 @@ public static boolean isProtectionExempted(String against){
287290
return protectionexempt.contains(against);
288291
}
289292

293+
public static boolean isDisabledWorld(String worldName){
294+
return disableWorlds.contains(worldName);
295+
}
296+
290297
}

0 commit comments

Comments
 (0)