> cat /wizhelp/plugins
========================================================================
Plugin System
========================================================================
Plugins add commands without modifying core code.
Save in /lib/plugins/
PLUGIN STRUCTURE:
```python
def setup_plugin(game_state):
return {
'name': 'Plugin Name',
'version': '1.0',
'author': 'YourName',
'description': 'What it does',
'commands': {
'cmdname': handler_function
}
}
```
REAL EXAMPLE - Sticky Explosives:
```python
def handle_stick(player, params):
"""stick <target> - Attach explosive"""
# Find explosive in inventory
explosive = None
for item in player.inventory.items:
if 'sticky' in item.name:
explosive = item
break
if not explosive:
player.message("You don't have a sticky explosive.")
return
# ... attach logic ...
def setup_plugin(game_state):
return {
'name': 'Sticky Explosive System',
'version': '3.0',
'author': 'ExplosivesShop',
'description': 'Sticky explosives for combat',
'commands': {
'stick': handle_stick,
'disarm': handle_disarm
},
'hooks': {
'on_heartbeat': process_explosives
}
}
```
COLOR PUZZLE PLUGIN:
```python
SWITCH_ROOMS = {
'tdcj_69': 'blue',
'tdcj_78': 'red',
'tdcj_90': 'green',
'tdcj_95': 'yellow'
}
def handle_flip_command(player, params):
if params != 'switch':
player.message("Flip what?")
return
room = player._location
if room in SWITCH_ROOMS:
# Toggle switch logic
```
MANAGEMENT:
plugins - List all
reload_plugin - Reload changes
enable_plugin - Turn on
disable_plugin - Turn off
========================================================================
>
_