Skip to content

Commit 27a2907

Browse files
authored
Merge pull request #41 from Mooling0602/dev
merge: dev -> main
2 parents ee98b4b + 44fd095 commit 27a2907

File tree

23 files changed

+191
-241
lines changed

23 files changed

+191
-241
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 30 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
- 中文
2-
- [English](https://github.com/Mooling0602/MatrixSync-MCDR/blob/main/README_en_us.md)
3-
> 为避免合并入主分支后链接指向错误,URL一律使用主分支的地址。如果你正在访问其他分支,请注意自行定位链接跳转位置。
2+
- [English](README_en_us.md)
43

54
# MatrixSync-MCDR
65
一个MCDR(全称[MCDReforged](https://mcdreforged.com/))插件,用于同步Matrix群组和《我的世界》服务器的线上游戏之间的消息。

README_en_us.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
- [中文](https://github.com/Mooling0602/MatrixSync-MCDR/blob/main/README.md)
1+
- [简体中文](README.md)
22
- English
3-
> To avoid incorrect links after merging into the main branch, all URLs should use the main branch's address. If you are accessing other branches, please make sure to manually adjust the link's target location.
43

54
# MatrixSync-MCDR
65
A MCDR (full name [MCDReforged](https://mcdreforged.com/)) plugin, can sync messages between Matrix groups and online gaming in Minecraft servers.

config.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
[framework]
33
ver=1
44
[main]
5-
ver=2.5.3
5+
ver=2.5.4
66
[release]
7-
test=0
7+
test=1
88
[ci]
99
plugin=1

lang/en_us.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ matrix_sync:
1515
failed: Failed to login your bot
1616
success: Login by password successfully!
1717
save_token: Saving token for the bot account...
18+
no_permission: Permission level is too low!
1819
on_receiver_cancelled: Receiver task was cancelled.
1920
on_send_command:
2021
sending: Message is sending to matrix...

lang/zh_cn.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ matrix_sync:
1515
failed: 无法登录你的机器人
1616
success: 成功使用密码完成登录!
1717
save_token: 正在为机器人账号保存Token...
18+
no_permission: 权限等级过低!
1819
on_receiver_cancelled: 接收器任务已经取消。
1920
on_send_command:
2021
sending: 消息正在发送到Matrix...
@@ -30,6 +31,6 @@ matrix_sync:
3031
settings_comp_check:
3132
failed: "兼容性检查失败!旧有的设置项将备份为\"settings.json.bak\""
3233
sync_status:
33-
running: "[MSync] 消息同步正在运行..."
34-
not_running: "[MSync] 消息同步未在运行!"
34+
running: "消息同步正在运行..."
35+
not_running: "消息同步未在运行!"
3536
token_mismatch: Token和现有的账号不匹配!同步任务将不会继续进行。

matrix_sync/client/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
def get_homeserver(url: str):
77
correct_url = url
8-
if not url.startswith("https://") or url.startswith("http://"):
8+
if not (url.startswith("https://") or url.startswith("http://")):
99
correct_url = "https://" + url
1010
return correct_url
1111

matrix_sync/client/init.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import sys
44
import aiofiles
55
from matrix_sync.commands import start_sync
6-
import matrix_sync.logger.get_logger as get_logger
76
import matrix_sync.plg_globals as plg_globals
87

98
from . import *
109
from ..utils import configDir, tr
1110
from ..utils.token import getToken
11+
from ..utils.get_logger import console_logger
1212
from nio import LoginResponse
1313
from mcdreforged.api.decorator import new_thread
1414

@@ -21,7 +21,7 @@ async def cache_token(resp: LoginResponse):
2121
}))
2222

2323
async def login_by_password():
24-
logger = get_logger()
24+
logger = console_logger()
2525
client = AsyncClient(
2626
get_homeserver(plg_globals.config["homeserver"]),
2727
plg_globals.config["user_id"],

matrix_sync/client/receiver.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# thread MatrixReceiver
22
import asyncio
3-
import matrix_sync.logger.get_logger as get_logger
43
import matrix_sync.plg_globals as plg_globals
54

65
from . import *
76
from ..utils.token import getToken
7+
from ..utils.get_logger import console_logger
88
from ..utils import tr
99
from ..event import *
1010
from nio import MatrixRoom, RoomMessageText, SyncError, UploadFilterError
@@ -21,14 +21,14 @@ async def message_callback(room: MatrixRoom, event: RoomMessageText) -> None:
2121
event_dispatcher(MatrixMessageEvent, event.body, room.user_name(event.sender), room_info)
2222

2323
def on_sync_error(response: SyncError):
24-
logger = get_logger()
24+
logger = console_logger()
2525
global homeserver_online
2626
logger.error(f"Sync error: {response.status_code}", "Receiver")
2727
if response.status_code >= 500:
2828
homeserver_online = False
2929

3030
async def get_messages() -> None:
31-
logger = get_logger()
31+
logger = console_logger()
3232
global receiver
3333
resp = None
3434
client = AsyncClient(homeserver=get_homeserver(plg_globals.config["homeserver"]))

matrix_sync/commands/__init__.py

Lines changed: 56 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import asyncio
22
import threading
3-
import matrix_sync.logger.get_logger as get_logger
43
import matrix_sync.plg_globals as plg_globals
54

65
from mcdreforged.api.all import *
6+
from ..utils.get_logger import console_logger, reply_logger
77
from ..client.reporter import send_to_matrix
88
from ..client.receiver import get_messages, stop_sync
9-
from ..client import *
10-
from ..utils import *
9+
from ..utils import psi, plgSelf, tr
1110
from .help import *
1211

1312

@@ -16,15 +15,15 @@
1615
plg_globals.tLock = threading.Lock()
1716

1817
def start_sync():
19-
logger = get_logger()
18+
logger = console_logger()
2019
if not plg_globals.tLock.locked():
2120
run_sync_task()
2221
else:
2322
logger.warning(tr("on_sync_running"))
2423

2524
@new_thread('MatrixReceiver')
2625
def run_sync_task():
27-
logger = get_logger()
26+
logger = console_logger()
2827
plg_globals.sync = True
2928
if plg_globals.token_vaild:
3029
with plg_globals.tLock:
@@ -52,42 +51,72 @@ def command_register(server: PluginServerInterface):
5251
builder.register(server)
5352

5453
@builder.command("!!msync start")
55-
def on_command_start():
56-
start_sync()
54+
def on_command_start(src: CommandSource):
55+
if src.has_permission_higher_than(2):
56+
start_sync()
57+
else:
58+
src.reply(tr("no_permission"))
5759

5860
@builder.command("!!msync stop")
59-
async def on_command_stop():
60-
await stop_sync()
61+
async def on_command_stop(src: CommandSource):
62+
if src.has_permission_higher_than(2):
63+
await stop_sync()
64+
else:
65+
src.reply(tr("no_permission"))
6166

6267
@builder.command("!!msync status")
63-
def show_status():
64-
logger = get_logger()
65-
logger.info(f"Receiver: {plg_globals.sync}")
66-
if plg_globals.sync:
67-
logger.info(tr("sync_status.running"))
68-
else:
69-
logger.info(tr("sync_status.not_running"))
68+
def show_status(src: CommandSource):
69+
logger = console_logger()
70+
def return_result():
71+
if plg_globals.sync:
72+
logger.info(tr("sync_status.running"))
73+
else:
74+
logger.info(tr("sync_status.not_running"))
75+
if src.is_console:
76+
logger = console_logger()
77+
logger.info(f"Receiver: {plg_globals.sync}")
78+
return_result()
79+
if src.is_player:
80+
reply = reply_logger()
81+
reply.log(src, f"Receiver: {plg_globals.sync}", logger)
82+
if plg_globals.sync:
83+
reply.log(src, tr("sync_status.running"), logger)
84+
else:
85+
reply.log(src, tr("sync_status.not_running"), logger)
7086

7187
@builder.command("!!msync send <message>")
7288
def on_command_send(src: CommandSource, ctx: CommandContext):
73-
if plg_globals.token_vaild:
74-
matrix_reporter(ctx["message"])
75-
src.reply(tr("on_send_command.sending"))
89+
if src.has_permission_higher_than(2):
90+
if plg_globals.token_vaild:
91+
matrix_reporter(ctx["message"])
92+
src.reply(tr("on_send_command.sending"))
93+
else:
94+
src.reply(tr("on_send_command.failed") + ": " + tr("token_mismatch"))
7695
else:
77-
src.reply(tr("on_send_command.failed") + ": " + tr("token_mismatch"))
96+
src.reply(tr("no_permission"))
7897

7998
@builder.command("!!msync reload")
80-
def on_command_reload():
81-
psi.reload_plugin(plgSelf.id)
99+
def on_command_reload(src: CommandSource):
100+
if src.has_permission_higher_than(2):
101+
psi.reload_plugin(plgSelf.id)
102+
else:
103+
reply = reply_logger()
104+
logger = console_logger()
105+
reply.log(src, tr("no_permission"), logger)
82106

83107
@builder.command("!!msync reload <pack_name>")
84108
def on_command_reload_subpack(src: CommandSource, ctx: CommandContext):
85-
plugin_list = psi.get_plugin_list()
86-
subpack_id = "msync_" + ctx["pack_name"]
87-
if subpack_id in plugin_list:
88-
psi.reload_plugin(subpack_id)
109+
if src.has_permission_higher_than(2):
110+
plugin_list = psi.get_plugin_list()
111+
subpack_id = ctx["pack_name"]
112+
if not subpack_id.startswith("msync_"):
113+
subpack_id = "msync_" + ctx["pack_name"]
114+
if subpack_id in plugin_list:
115+
psi.reload_plugin(subpack_id)
116+
else:
117+
src.reply("Reload subpack error: Invaild name or target subpack is not loaded!")
89118
else:
90-
src.reply("Reload subpack error: Invaild name!")
119+
src.reply(tr("no_permission"))
91120

92121
@builder.command("!!msync")
93122
@builder.command("!!msync help")

0 commit comments

Comments
 (0)