Skip to content

Commit f9853d6

Browse files
committed
feat: add funcs, implement init and help (partial)
1 parent 55577da commit f9853d6

File tree

1 file changed

+83
-3
lines changed

1 file changed

+83
-3
lines changed

scoreboardHelper/scoreboardHelper.py

Lines changed: 83 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
import os, json
33

44
class ScoreboardHelper(QtCore.QObject):
5-
_cmd_prefix = '!sh'
5+
_cmd_prefix = '!sb'
66

77

88
def __init__(self, logger, core, config_file):
9-
super(ScoreboardHelper, self).__init__(core)
9+
super(ScoreboardHelper, self).__init__(core)
1010
self.logger = logger
1111

1212
# load config
@@ -18,4 +18,84 @@ def __init__(self, logger, core, config_file):
1818
else:
1919
self.logger.warning('config.json not found. Using default settings.')
2020

21-
21+
self.cycle_enabled = self.configs.get('cycle_enabled', True)
22+
23+
# load mcBasicLib
24+
self.utils = core.get_plugin('mcBasicLib')
25+
if self.utils is None:
26+
self.logger.error('Failed to load plugin mcBasicLib. ScoreboardHelper will be disabled.')
27+
self.logger.error('Please make sure that mcBasicLib has been added to plugins.')
28+
return # self.disabled = True
29+
30+
# connect signals and slots
31+
self.utils.sig_input.connect(self.on_player_input)
32+
33+
# available commands
34+
self.cmd_list = {
35+
'help': self.help,
36+
'list': self.list_visible_sb,
37+
'view': self.view_sb,
38+
'add': self.add_sb,
39+
'rm': self.rm_sb,
40+
'cycle': self.set_cycle,
41+
'settime': self.set_time,
42+
}
43+
44+
45+
def unknown_command(self, player):
46+
self.logger.warning('Unknown command sent by player {}.'.format(player.name))
47+
self.utils.tell(player, 'Unknown command. Type "!sb help" for help.')
48+
49+
50+
@QtCore.pyqtSlot(tuple)
51+
def on_player_input(self, pair):
52+
self.logger.debug(f'{self.__class__.__name__}.on_player_input() called')
53+
player, text = pair
54+
text_list = text.strip().split()
55+
56+
if len(text_list) and text_list[0] == self._cmd_prefix:
57+
if len(text_list) > 1 and text_list[1] in self.cmd_list:
58+
self.cmd_list[text_list[1]](player, text_list)
59+
else:
60+
self.unknown_command(player)
61+
62+
63+
# Plugin Functions
64+
def help(self, player, text_list):
65+
help_info = '''\
66+
------------------ ScoreboardHelper Command List ------------------
67+
"!sb help": show this help message.
68+
"!sb list": list all scoreboards.
69+
"!sb view <name>": view a certain scoreboard for a period of time.
70+
-------------------------------------------------------------------'''
71+
op_help_info = '''\
72+
"!sb cycle <true|false>": turn on/off scoreboard cycling.
73+
"!sb <add|rm> <visible|cycle> <name>":
74+
add/remove a scoreboard from visible/cycle list.
75+
"!sb settime <visible|cycle> <time_in_sec>":
76+
77+
'''
78+
79+
80+
def list_visible_sb(self, player, text_list):
81+
pass
82+
83+
84+
def view_sb(self, player, text_list):
85+
pass
86+
87+
88+
def add_sb(self, player, text_list):
89+
pass
90+
91+
92+
def rm_sb(self, player, text_list):
93+
pass
94+
95+
96+
def set_cycle(self, player, text_list):
97+
pass
98+
99+
100+
def set_time(self, player, text_list):
101+
pass

0 commit comments

Comments
 (0)