Skip to content

Commit 5bccc0a

Browse files
committed
update(skip): 改进 !sb skip 后新计分板显示时长
- 当 cycle enabled: - 若从view状态发起skip,以上次cycle显示剩余时间开始显示原来的cycle项目; - 若从cycle状态发起skip,以设定的标准时长开始显示下一cycle项目; - 若cycle disabled,则同上显示项目,但不启动任何计时器;
1 parent 9c2cb7e commit 5bccc0a

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

scoreboardHelper/scoreboardHelper.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ def __init__(self, logger, core, config_file):
4343
self.cycle_index = 0
4444
self.cycle_timer = QtCore.QTimer(self)
4545
self.cycle_timer.timeout.connect(self.cycle_timer_action) # type: ignore[attr-defined]
46-
self.std_cyc_interval = self.configs.get('sec_between_cycle', self._default_cycle_interval) # second
47-
self.cycle_timer.start(self.std_cyc_interval * 1000) # start cycle timer
46+
self.std_cyc_interval = self.configs.get('sec_between_cycle', self._default_cycle_interval) * 1000 # msec
47+
self.cycle_timer.start(self.std_cyc_interval) # start cycle timer
4848
self._cycle_remaining_time = 0 # ms
4949

5050
# connect signals and slots
@@ -174,10 +174,10 @@ def view_sb(self, player, args: list):
174174
self.cycle_timer.stop()
175175

176176
self.core.write_server(f'/scoreboard objectives setdisplay sidebar {sb_name}')
177-
interval = self.configs.get('sec_view_stay', self._default_view_stay)
178-
self.utils.tell(player, f'Viewing \'{sb_name}\' for {interval} seconds.')
177+
view_interval = self.configs.get('sec_view_stay', self._default_view_stay)
178+
self.utils.tell(player, f'Viewing \'{sb_name}\' for {view_interval} seconds.')
179179
self.view_timer = QtCore.QTimer(self)
180-
self.view_timer.singleShot(interval * 1000, self.view_timer_end) # do view_timer_end() once after interval
180+
self.view_timer.singleShot(view_interval * 1000, self.view_timer_end) # do view_timer_end() once after interval
181181

182182

183183
def skip_sb(self, player, args: list):
@@ -192,6 +192,8 @@ def skip_sb(self, player, args: list):
192192
else: # TODO: permission control?
193193
self.logger.debug('skip_sb(): view timer is inactive.')
194194
self.cycle_timer_action(forced=True)
195+
if self.cycle_enabled:
196+
self.cycle_timer.start(self.std_cyc_interval)
195197

196198
self.utils.tell(player, f'Skipped displaying scoreborad.')
197199

0 commit comments

Comments
 (0)