Skip to content

Commit c3ca30a

Browse files
committed
v2.2.1
1 parent e322734 commit c3ca30a

File tree

6 files changed

+31
-19
lines changed

6 files changed

+31
-19
lines changed

lang/en_us.yml

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ where_is:
2121
not_online: "Required player {} is not online"
2222
perm_denied: "Permission denied"
2323
invalid_args: "Invalid argument"
24+
not_player: This operation can only be performed by player
2425
warn:
2526
duplicated_here: "Duplicated function between this plugin and Here, this function will not be triggered while Here exists"
2627
hover:

lang/zh_cn.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ where_is:
2121
not_online: "玩家 §4{}§c 不在线"
2222
perm_denied: "权限不足"
2323
invalid_args: "无效的参数"
24+
not_player: 该操作仅可由玩家执行
2425
warn:
2526
duplicated_here: "本插件与Here存在功能重复,本插件的Here功能暂停工作"
2627
hover:
@@ -32,5 +33,5 @@ where_is:
3233
the_nether: '下界'
3334
the_end: '末地'
3435
cfg:
35-
vanilla_dim_missed: '适用于语言"{0}"的原版维度名称未找到: {1}'
36+
vanilla_dim_missed: '适用于语言 "{0}" 的原版维度名称未找到: {1}'
3637
dim_key_missed: '原版维度翻译键未找到: {0}'

mcdreforged.plugin.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"id": "where_is",
3-
"version": "2.2.0+build.12",
3+
"version": "2.2.1",
44
"name": "Where Is",
55
"description": {
66
"en_us": "Query players' coordinates",

where_is/config.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def query_is_allowed(self, source: CommandSource):
1616
return source.has_permission(self.where_is)
1717

1818
def broadcast_is_allowed(self, source: CommandSource):
19-
return source.has_permission(self.here) and isinstance(source, PlayerCommandSource)
19+
return source.has_permission(self.here)
2020

2121
def is_admin(self, source: CommandSource):
2222
return source.has_permission(self.admin)
@@ -111,7 +111,7 @@ class Config(Serializable):
111111
NETHER_SHORT: 'advancements.nether.root.title',
112112
END_SHORT: 'advancements.end.root.title'
113113
}
114-
# Enable this option will result in invalid MCDR language preference while calling "!!here"
114+
# Enable this option will result in invalid MCDR language pref while calling "!!here"
115115
# But enable this may relieve the emotion of code OCD patients xD
116116
here_use_broadcast: bool
117117

where_is/entry.py

+11-10
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,9 @@ def register_commands(server: PluginServerInterface):
274274
here_root = Literal(config.command_prefix.here_prefixes).requires(
275275
config.permission_requirements.broadcast_is_allowed,
276276
lambda: rtr('err.perm_denied')
277+
).requires(
278+
lambda src: src.is_player,
279+
lambda: rtr('err.not_player')
277280
).runs(here)
278281
here_root.then(
279282
Literal('highlight').then(
@@ -285,13 +288,15 @@ def register_commands(server: PluginServerInterface):
285288

286289
def register_help_messages(server: PluginServerInterface):
287290
if config.enable_where_is:
288-
for p in config.command_prefix.where_is_prefixes:
289-
server.register_help_message(p, server.get_self_metadata().description,
290-
permission=config.permission_requirements.where_is)
291+
for pre in config.command_prefix.where_is_prefixes:
292+
server.register_help_message(
293+
pre, rtr('help.vris'), permission=config.permission_requirements.where_is
294+
)
291295
if config.enable_here:
292-
for p in config.command_prefix.here_prefixes:
293-
server.register_help_message(p, server.get_self_metadata().description,
294-
permission=config.permission_requirements.here)
296+
for pre in config.command_prefix.here_prefixes:
297+
server.register_help_message(
298+
pre, rtr('help.here'), permission=config.permission_requirements.here
299+
)
295300

296301

297302
def register_customized_translations(server: PluginServerInterface):
@@ -305,7 +310,3 @@ def on_load(server: PluginServerInterface, prev_modules):
305310
register_help_messages(server)
306311
register_customized_translations(server)
307312
register_commands(server)
308-
for pre in config.command_prefix.here_prefixes:
309-
server.register_help_message(pre, rtr('help.here'))
310-
for pre in config.command_prefix.where_is_prefixes:
311-
server.register_help_message(pre, rtr('help.vris'))

where_is/online_players.py

+14-5
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def __init__(self):
1313
self.__lock = RLock()
1414
self.__players: List[str] = []
1515
self.__limit = 0
16+
self.__enabled = False
1617

1718
def get_player_list(self, refresh: bool = False):
1819
with self.__lock:
@@ -26,14 +27,16 @@ def get_player_limit(self, refresh: bool = False):
2627
self.__refresh_online_players()
2728
return self.__limit
2829

30+
@named_thread
2931
def __add_player(self, player: str):
3032
with self.__lock:
31-
if psi.is_server_startup() and player not in self.__players:
33+
if self.__enabled and player not in self.__players:
3234
self.__players.append(player)
3335

36+
@named_thread
3437
def __remove_player(self, player: str):
3538
with self.__lock:
36-
if player in self.__players:
39+
if self.__enabled and player in self.__players:
3740
self.__players.remove(player)
3841

3942
@named_thread
@@ -57,10 +60,16 @@ def __refresh_online_players(self):
5760
"Incorrect player count found while refreshing player list"
5861
)
5962

63+
@named_thread
64+
def __enable_player_join(self):
65+
with self.__lock:
66+
self.__enabled = True
67+
debug("Player list counting enabled")
68+
6069
@named_thread
6170
def __clear_online_players(self):
6271
with self.__lock:
63-
self.__limit, self.__players = None, None
72+
self.__limit, self.__players = None, []
6473
debug("Cleared online player cache")
6574

6675
def register_event_listeners(self):
@@ -69,8 +78,8 @@ def register_event_listeners(self):
6978
lambda *args, **kwargs: self.__refresh_online_players(),
7079
)
7180
psi.register_event_listener(
72-
MCDRPluginEvents.SERVER_STARTUP,
73-
lambda *args, **kwargs: self.__refresh_online_players(),
81+
MCDRPluginEvents.SERVER_START,
82+
lambda *args, **kwargs: self.__enable_player_join(),
7483
)
7584
psi.register_event_listener(
7685
MCDRPluginEvents.PLAYER_JOINED,

0 commit comments

Comments
 (0)