22import os , json
33
44class 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