28 lines
933 B
Python
28 lines
933 B
Python
import pickle
|
|
|
|
class VoidTerminalState():
|
|
def __init__(self):
|
|
self.reset_state()
|
|
|
|
def reset_state(self):
|
|
self.has_provided_explaination = False
|
|
|
|
def lock_plugin(self, chatbot):
|
|
chatbot._cookies['lock_plugin'] = 'crazy_functions.虚空终端->虚空终端'
|
|
chatbot._cookies['plugin_state'] = pickle.dumps(self)
|
|
|
|
def unlock_plugin(self, chatbot):
|
|
self.reset_state()
|
|
chatbot._cookies['lock_plugin'] = None
|
|
chatbot._cookies['plugin_state'] = pickle.dumps(self)
|
|
|
|
def set_state(self, chatbot, key, value):
|
|
setattr(self, key, value)
|
|
chatbot._cookies['plugin_state'] = pickle.dumps(self)
|
|
|
|
def get_state(chatbot):
|
|
state = chatbot._cookies.get('plugin_state', None)
|
|
if state is not None: state = pickle.loads(state)
|
|
else: state = VoidTerminalState()
|
|
state.chatbot = chatbot
|
|
return state |