mindcraft/utils/events.js
2023-12-12 21:35:39 -08:00

41 lines
No EOL
1.1 KiB
JavaScript

export class Events {
constructor(agent, events) {
this.events = events;
if (agent != null)
this.init(agent, events);
}
init(agent, events) {
this.events = events;
for (let [event, callback, params] of events) {
if (callback != null)
agent.bot.on(event, this[callback].bind(this, agent, params));
}
agent.bot.on('time', () => {
if (agent.bot.time.timeOfDay == 0)
agent.bot.emit('sunrise');
else if (agent.bot.time.timeOfDay == 6000)
agent.bot.emit('noon');
else if (agent.bot.time.timeOfDay == 12000)
agent.bot.emit('sunset');
else if (agent.bot.time.timeOfDay == 18000)
agent.bot.emit('midnight');
});
agent.bot.on('health', () => {
if (agent.bot.health < 20)
agent.bot.emit('damaged');
});
}
executeCode(agent, code) {
agent.executeCode(code);
}
sendThought(agent, message) {
agent.history.add(agent.name, message);
agent.handleMessage();
}
}