+import { Server } from 'socket.io';
+import { maxHp, maxVigor, Player } from '../shared/player';
+import { createMonsters } from '../../seeds/monsters';
+import { createAllCitiesAndLocations } from '../../seeds/cities';
+import { createShopItems, createShopEquipment } from '../../seeds/shop_items';
+import { broadcastMessage, Message } from '../shared/message';
+import { updatePlayer } from './player';
+
+export async function handleChatCommands(msg: string, player: Player, io: Server): Promise<Message> {
+ let message: Message;
+ if(msg === '/server refresh-monsters') {
+ await createMonsters();
+ message = broadcastMessage('server', 'Monster refresh!');
+ }
+ else if(msg === '/server refresh-cities') {
+ await createAllCitiesAndLocations();
+ message = broadcastMessage('server', 'Cities, Locations, and Paths refreshed!');
+ }
+ else if(msg === '/server refresh-shops') {
+ await createShopItems();
+ await createShopEquipment();
+ message = broadcastMessage('server', 'Refresh shop items');
+ }
+ else if(msg.startsWith('/server set-level')) {
+ const level = parseInt(msg.split(' ').pop());
+ if(level < 1) {
+ message = broadcastMessage('server', 'Needs to be at least level 1');
+ }
+ else {
+ message = broadcastMessage('server', `Set player level: ${level}`);
+
+ player.level = level;
+ player.strength = 4;
+ player.constitution = 4;
+ player.dexterity = 4;
+ player.intelligence = 4;
+ player.hp = maxHp(player.constitution, player.level);
+ player.vigor = maxVigor(player.constitution, player.level);
+ player.stat_points = level-1;
+
+ await updatePlayer(player);
+ }
+ }
+ else {
+ const str = msg.split('/server ')[1];
+ if(str) {
+ message = broadcastMessage('server', str);
+ }
+ }
+
+ return message;
+}