This commit is contained in:
wenhe committed 2026-09-11 16:01:53 +08:00
1 parent fd4f65e19e
commit b69e487b10
2 files changed
+35 -7

No files matched your search

@@ -163,13 +163,23 @@ class MianshiTimerService(BlueFoxServerSystem):
break
if rule is None:
# 蒸笼等: 暂停计时(数据保留, 炉灶回来继续) + 提示发起玩家
self._notifyIfOnline(data.get("rtdd_tp"), "§c蒸笼下的炉灶移走了, 暂停蒸制")
tp = ""
try:
tp = data["rtdd_tp"] or ""
except Exception:
tp = ""
self._notifyIfOnline(tp, "§c蒸笼下的炉灶移走了, 暂停蒸制")
return
# 烤炉被打碎: 方块掉落 + 变空气 + 终止计时 + 提示
tp = ""
try:
tp = data["rtdd_tp"] or ""
except Exception:
tp = ""
self._clearTimerData(dim, pos)
self._dropBlockItem(dim, pos, blockName)
self._setAir(dim, pos)
self._notifyIfOnline(data.get("rtdd_tp"), BREAK_TIP)
self._notifyIfOnline(tp, BREAK_TIP)
# 蒸制/烤制/发酵 完成后的"下一步"指引(按目标方块)
_STEAM_DONE = {"rtdd:steamerdumplings_1", "rtdd:baozilong_2",
@@ -179,6 +189,12 @@ class MianshiTimerService(BlueFoxServerSystem):
def _finishTimer(self, dim, pos, rule, data):
try:
# 先取出发起玩家(下方 replaceBlock/_clearTimerData 会把实体数据清掉, 必须提前读)
tp = ""
try:
tp = data["rtdd_tp"] or ""
except Exception:
tp = ""
cur = comp.CreateBlockInfo(LevelId).GetBlockNew(pos, dim)
if cur and cur.get("name") != rule["source"]:
self._clearTimerData(dim, pos)
@@ -189,8 +205,8 @@ class MianshiTimerService(BlueFoxServerSystem):
tip = rule.get("doneTip", "")
if tip:
tip += self._nextStepTip(rule)
self._notifyIfOnline(data.get("rtdd_tp"), tip)
if not data.get("rtdd_tp"):
self._notifyIfOnline(tp, tip)
if not tp:
self._notifyNearby(dim, pos, tip)
except Exception:
pass
@@ -147,10 +147,21 @@ class YouguoTimerService(BlueFoxServerSystem):
def _handleBelowBroken(self, dim, pos, blockName, data, rules):
"""下方点燃炉灶被移走/熄灭: 暂停计时(数据保留, 炉灶回来继续) + 提示发起玩家"""
self._notifyIfOnline(data.get("rtdd_tp"), "§c油锅下的炉灶移走了, 暂停炸制")
tp = ""
try:
tp = data["rtdd_tp"] or ""
except Exception:
tp = ""
self._notifyIfOnline(tp, "§c油锅下的炉灶移走了, 暂停炸制")
def _finishTimer(self, dim, pos, rule, data):
try:
# 先取出发起玩家(下方 replaceBlock/_clearTimerData 会把实体数据清掉, 必须提前读)
tp = ""
try:
tp = data["rtdd_tp"] or ""
except Exception:
tp = ""
cur = comp.CreateBlockInfo(LevelId).GetBlockNew(pos, dim)
if cur and cur.get("name") != rule["source"]:
self._clearTimerData(dim, pos)
@@ -158,10 +169,11 @@ class YouguoTimerService(BlueFoxServerSystem):
# 到点转换
self.replaceBlock(pos, dim, rule["target"], None)
self._clearTimerData(dim, pos)
# 计时结束提示: 发给发起玩家; 发起者不在/未知则提示附近
tip = rule.get("doneTip", "")
if tip:
self._notifyIfOnline(data.get("rtdd_tp"), tip)
if not data.get("rtdd_tp"):
self._notifyIfOnline(tp, tip)
if not tp:
self._notifyNearby(dim, pos, tip)
except Exception:
pass