From 8309b58fa16627dfdd4558a40bafe99039ca49e0 Mon Sep 17 00:00:00 2001
From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
Date: Wed, 22 Apr 2020 04:21:44 +0200
Subject: [PATCH] Fixed the emotes crashing.

---
 lib/aethyr/core/commands/emote.rb         | 7 ++++---
 lib/aethyr/core/commands/emote_handler.rb | 4 +++-
 lib/aethyr/core/objects/container.rb      | 6 +++---
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/lib/aethyr/core/commands/emote.rb b/lib/aethyr/core/commands/emote.rb
index 9f86d36..d4d58be 100644
--- a/lib/aethyr/core/commands/emote.rb
+++ b/lib/aethyr/core/commands/emote.rb
@@ -58,7 +58,7 @@ EOF
 
               people.each do |person|
                 out = action.gsub(person.name, 'you')
-                person.output("#{player.name} #{out}") unless person.can? :blind and person.blind?
+                person.output("#{player.name} #{out}", message_type = :chat) unless person.can? :blind and person.blind?
               end
 
               room.output("#{player.name} #{action}", player, *people)
@@ -68,8 +68,9 @@ EOF
             end
 
             if show
-              event.to_player = "You emote: #{show}"
-              event.to_other = show
+              event[:message_type] = :chat
+              event[:to_player] = "You emote: #{show}"
+              event[:to_other] = show
               room.out_event event
             end
           end
diff --git a/lib/aethyr/core/commands/emote_handler.rb b/lib/aethyr/core/commands/emote_handler.rb
index 1893a02..e3fdfaa 100644
--- a/lib/aethyr/core/commands/emote_handler.rb
+++ b/lib/aethyr/core/commands/emote_handler.rb
@@ -13,7 +13,7 @@ module Aethyr
       def make_emote event, player, room, &block
         g = GenericEmote.new(event, player, room)
         g.instance_eval(&block)
-        if g.return_event
+        if g.return_event && (g.return_event.respond_to? :has_key?)
           g.set_post #add postfix
           log "Doing event" , Logger::Ultimate
           room.out_event g.return_event
@@ -28,6 +28,8 @@ module Aethyr
 
         def initialize(event, player, room)
           @event = event
+          @event[:message_type] = :chat
+          @event[:player] = player
           @player = player
           @room = room
           @post = event[:post]
diff --git a/lib/aethyr/core/objects/container.rb b/lib/aethyr/core/objects/container.rb
index 221beb7..fbe8c04 100644
--- a/lib/aethyr/core/objects/container.rb
+++ b/lib/aethyr/core/objects/container.rb
@@ -84,12 +84,12 @@ class GridContainer < Container
     @inventory.add(object, position)
     object.container = @game_object_id
   end
-  
+
   def find_by_position(position)
     @inventory.find_by_position(position)
   end
-  
+
   def position game_object
     @inventory.position(game_object)
   end
-end
\ No newline at end of file
+end
-- 
GitLab