From 7167547625b0f5c7e7c97fe174961d1a55bd8844 Mon Sep 17 00:00:00 2001
From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
Date: Tue, 5 May 2020 18:49:17 -0400
Subject: [PATCH] Further improved the refactoring to fix some bugs.

---
 .../core/actions/commands/emotes/agree.rb     |   4 +-
 .../core/actions/commands/emotes/back.rb      |   4 +-
 .../core/actions/commands/emotes/blush.rb     |   4 +-
 .../core/actions/commands/emotes/bow.rb       |   4 +-
 .../core/actions/commands/emotes/brb.rb       |   4 +-
 .../core/actions/commands/emotes/bye.rb       |   4 +-
 .../core/actions/commands/emotes/cheer.rb     |   4 +-
 .../core/actions/commands/emotes/cry.rb       |   4 +-
 .../core/actions/commands/emotes/curtsey.rb   |   4 +-
 lib/aethyr/core/actions/commands/emotes/eh.rb |   4 +-
 .../actions/commands/{ => emotes}/emote.rb    |   0
 .../actions/commands/emotes/emote_action.rb   | 151 ++++++++++++++++++
 lib/aethyr/core/actions/commands/emotes/er.rb |   4 +-
 lib/aethyr/core/actions/commands/emotes/ew.rb |   4 +-
 .../core/actions/commands/emotes/frown.rb     |   4 +-
 .../core/actions/commands/emotes/grin.rb      |   4 +-
 lib/aethyr/core/actions/commands/emotes/hi.rb |   4 +-
 lib/aethyr/core/actions/commands/emotes/hm.rb |   4 +-
 .../core/actions/commands/emotes/hug.rb       |   4 +-
 .../core/actions/commands/emotes/huh.rb       |   4 +-
 .../core/actions/commands/emotes/laugh.rb     |   4 +-
 lib/aethyr/core/actions/commands/emotes/no.rb |   4 +-
 .../core/actions/commands/emotes/nod.rb       |   4 +-
 .../core/actions/commands/emotes/pet.rb       |   4 +-
 .../core/actions/commands/emotes/poke.rb      |   4 +-
 .../core/actions/commands/emotes/ponder.rb    |   4 +-
 .../core/actions/commands/emotes/shrug.rb     |   4 +-
 .../core/actions/commands/emotes/sigh.rb      |   4 +-
 .../core/actions/commands/emotes/skip.rb      |   4 +-
 .../core/actions/commands/emotes/smile.rb     |   4 +-
 .../core/actions/commands/emotes/snicker.rb   |   4 +-
 lib/aethyr/core/actions/commands/emotes/uh.rb |   4 +-
 .../core/actions/commands/emotes/wave.rb      |   4 +-
 .../core/actions/commands/emotes/yawn.rb      |   4 +-
 .../core/actions/commands/emotes/yes.rb       |   4 +-
 .../core/input_handlers/emotes/agree.rb       |   2 +-
 lib/aethyr/core/input_handlers/emotes/back.rb |   2 +-
 .../core/input_handlers/emotes/blush.rb       |   2 +-
 lib/aethyr/core/input_handlers/emotes/bow.rb  |   2 +-
 lib/aethyr/core/input_handlers/emotes/brb.rb  |   2 +-
 lib/aethyr/core/input_handlers/emotes/bye.rb  |   2 +-
 .../core/input_handlers/emotes/cheer.rb       |   2 +-
 lib/aethyr/core/input_handlers/emotes/cry.rb  |   2 +-
 .../core/input_handlers/emotes/curtsey.rb     |   2 +-
 lib/aethyr/core/input_handlers/emotes/eh.rb   |   2 +-
 .../core/input_handlers/emotes/emote.rb       |   2 +-
 .../input_handlers/emotes/emote_handler.rb    | 137 ----------------
 lib/aethyr/core/input_handlers/emotes/er.rb   |   2 +-
 lib/aethyr/core/input_handlers/emotes/ew.rb   |   2 +-
 .../core/input_handlers/emotes/frown.rb       |   2 +-
 lib/aethyr/core/input_handlers/emotes/grin.rb |   2 +-
 lib/aethyr/core/input_handlers/emotes/hi.rb   |   2 +-
 lib/aethyr/core/input_handlers/emotes/hm.rb   |   2 +-
 lib/aethyr/core/input_handlers/emotes/hug.rb  |   2 +-
 lib/aethyr/core/input_handlers/emotes/huh.rb  |   2 +-
 .../core/input_handlers/emotes/laugh.rb       |   2 +-
 lib/aethyr/core/input_handlers/emotes/no.rb   |   2 +-
 lib/aethyr/core/input_handlers/emotes/nod.rb  |   2 +-
 lib/aethyr/core/input_handlers/emotes/pet.rb  |   2 +-
 lib/aethyr/core/input_handlers/emotes/poke.rb |   2 +-
 .../core/input_handlers/emotes/ponder.rb      |   2 +-
 .../core/input_handlers/emotes/shrug.rb       |   2 +-
 lib/aethyr/core/input_handlers/emotes/sigh.rb |   2 +-
 lib/aethyr/core/input_handlers/emotes/skip.rb |   2 +-
 .../core/input_handlers/emotes/smile.rb       |   2 +-
 .../core/input_handlers/emotes/snicker.rb     |   2 +-
 lib/aethyr/core/input_handlers/emotes/uh.rb   |   2 +-
 lib/aethyr/core/input_handlers/emotes/wave.rb |   2 +-
 lib/aethyr/core/input_handlers/emotes/yawn.rb |   2 +-
 lib/aethyr/core/input_handlers/emotes/yes.rb  |   2 +-
 70 files changed, 251 insertions(+), 237 deletions(-)
 rename lib/aethyr/core/actions/commands/{ => emotes}/emote.rb (100%)
 create mode 100644 lib/aethyr/core/actions/commands/emotes/emote_action.rb

diff --git a/lib/aethyr/core/actions/commands/emotes/agree.rb b/lib/aethyr/core/actions/commands/emotes/agree.rb
index 6386efb..22533eb 100644
--- a/lib/aethyr/core/actions/commands/emotes/agree.rb
+++ b/lib/aethyr/core/actions/commands/emotes/agree.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Agree
-        class AgreeCommand < Aethyr::Core::Actions::CommandAction
+        class AgreeCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/back.rb b/lib/aethyr/core/actions/commands/emotes/back.rb
index b8f3887..6d5a160 100644
--- a/lib/aethyr/core/actions/commands/emotes/back.rb
+++ b/lib/aethyr/core/actions/commands/emotes/back.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Back
-        class BackCommand < Aethyr::Core::Actions::CommandAction
+        class BackCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/blush.rb b/lib/aethyr/core/actions/commands/emotes/blush.rb
index ab83d88..c4981f7 100644
--- a/lib/aethyr/core/actions/commands/emotes/blush.rb
+++ b/lib/aethyr/core/actions/commands/emotes/blush.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Blush
-        class BlushCommand < Aethyr::Core::Actions::CommandAction
+        class BlushCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/bow.rb b/lib/aethyr/core/actions/commands/emotes/bow.rb
index 3c1ea06..2213a9b 100644
--- a/lib/aethyr/core/actions/commands/emotes/bow.rb
+++ b/lib/aethyr/core/actions/commands/emotes/bow.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Bow
-        class BowCommand < Aethyr::Core::Actions::CommandAction
+        class BowCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/brb.rb b/lib/aethyr/core/actions/commands/emotes/brb.rb
index c6a6dc4..b1cfcb6 100644
--- a/lib/aethyr/core/actions/commands/emotes/brb.rb
+++ b/lib/aethyr/core/actions/commands/emotes/brb.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Brb
-        class BrbCommand < Aethyr::Core::Actions::CommandAction
+        class BrbCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/bye.rb b/lib/aethyr/core/actions/commands/emotes/bye.rb
index 678acb3..ad93347 100644
--- a/lib/aethyr/core/actions/commands/emotes/bye.rb
+++ b/lib/aethyr/core/actions/commands/emotes/bye.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Bye
-        class ByeCommand < Aethyr::Core::Actions::CommandAction
+        class ByeCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/cheer.rb b/lib/aethyr/core/actions/commands/emotes/cheer.rb
index 04f9d4c..d57a87a 100644
--- a/lib/aethyr/core/actions/commands/emotes/cheer.rb
+++ b/lib/aethyr/core/actions/commands/emotes/cheer.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Cheer
-        class CheerCommand < Aethyr::Core::Actions::CommandAction
+        class CheerCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/cry.rb b/lib/aethyr/core/actions/commands/emotes/cry.rb
index 9b4104f..e960c36 100644
--- a/lib/aethyr/core/actions/commands/emotes/cry.rb
+++ b/lib/aethyr/core/actions/commands/emotes/cry.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Cry
-        class CryCommand < Aethyr::Core::Actions::CommandAction
+        class CryCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/curtsey.rb b/lib/aethyr/core/actions/commands/emotes/curtsey.rb
index 24e2ab8..c9f2979 100644
--- a/lib/aethyr/core/actions/commands/emotes/curtsey.rb
+++ b/lib/aethyr/core/actions/commands/emotes/curtsey.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Curtsey
-        class CurtseyCommand < Aethyr::Core::Actions::CommandAction
+        class CurtseyCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/eh.rb b/lib/aethyr/core/actions/commands/emotes/eh.rb
index ac7bfd2..f0798cc 100644
--- a/lib/aethyr/core/actions/commands/emotes/eh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/eh.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Eh
-        class EhCommand < Aethyr::Core::Actions::CommandAction
+        class EhCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emote.rb b/lib/aethyr/core/actions/commands/emotes/emote.rb
similarity index 100%
rename from lib/aethyr/core/actions/commands/emote.rb
rename to lib/aethyr/core/actions/commands/emotes/emote.rb
diff --git a/lib/aethyr/core/actions/commands/emotes/emote_action.rb b/lib/aethyr/core/actions/commands/emotes/emote_action.rb
new file mode 100644
index 0000000..61eacdb
--- /dev/null
+++ b/lib/aethyr/core/actions/commands/emotes/emote_action.rb
@@ -0,0 +1,151 @@
+require 'aethyr/core/actions/command_action'
+
+module Aethyr
+  module Core
+    module Actions
+    class EmoteAction < Aethyr::Core::Actions::CommandAction
+      def initialize(actor, **data)
+        super(actor, **data)
+      end
+
+      protected
+
+      #Run an emote.
+      def make_emote event, player, room, &block
+        g = GenericEmote.new(event, player, room)
+        g.instance_eval(&block)
+        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
+        end
+      end
+
+
+      #Provides little DSL to easily create emotes.
+      class GenericEmote
+
+        attr_reader :return_event
+
+        def initialize(event, player, room)
+          @event = event
+          @event[:message_type] = :chat
+          @event[:player] = player
+          @player = player
+          @room = room
+          @post = event[:post]
+          @object = nil
+          @return_event = nil
+          find_target
+        end
+
+        #If there is no target, return the given block.
+        def no_target
+          return if @return_event
+
+          if @object.nil?
+            @return_event = yield
+          end
+        end
+
+        #If the target is the player, return the given block.
+        def self_target
+          return if @return_event
+
+          if @object == @player
+            @return_event = yield
+          end
+        end
+
+        #If there is a target, return the given block.
+        def target
+          return if @return_event
+
+          unless @object.nil?
+            @return_event = yield
+          end
+        end
+
+        #If nothing else matches, return the given block.
+        def default
+          @return_event = yield
+        end
+
+        #Provide output to show player.
+        def to_player output
+          @event[:to_player] = output
+          @event
+        end
+
+        #Provide output to show others.
+        def to_other output
+          @event[:to_other] = output
+          @event
+        end
+
+        #Provide output to show target.
+        def to_target output
+          @event[:to_target] = output
+          @event
+        end
+
+        #Provide output to show blind others.
+        def to_blind_other output
+          @event[:to_blind_other] = output
+          @event
+        end
+
+        #Provide output to show deaf others.
+        def to_deaf_other output
+          @event[:to_deaf_other] = output
+          @event
+        end
+
+        #Provide output to show blind target.
+        def to_blind_target output
+          @event[:to_blind_target] = output
+          @event
+        end
+
+        #Provide output to show deaf target.
+        def to_deaf_target output
+          @event[:to_deaf_target] = output
+          @event
+        end
+
+        #Appends suffix to emote.
+        def set_post
+          return if not @post
+          [:to_player, :to_other, :to_target, :to_blind_other, :to_blind_target, :to_deaf_other, :to_deaf_target].each do |t|
+            if @return_event[t]
+              if @return_event[t][-1,1] == "."
+                @return_event[t][-1] = ""
+              end
+
+              if @post[0,1] == ","
+                @return_event[t] << @post
+              else
+                @return_event[t] << " " << @post
+              end
+
+              unless ["!", "?", ".", "\"", "'"].include? @post[-1,1]
+                @return_event[t] << "."
+              end
+            end
+          end
+        end
+
+        private
+
+        #Find target for emote.
+        def find_target
+          if @object.nil? and @event[:object]
+            @object = @room.find(@event[:object]) || @player.search_inv(@event[:object])
+            @event[:target] = @object
+          end
+        end
+      end
+    end
+  end
+end
+end
diff --git a/lib/aethyr/core/actions/commands/emotes/er.rb b/lib/aethyr/core/actions/commands/emotes/er.rb
index 8de269c..e852ef4 100644
--- a/lib/aethyr/core/actions/commands/emotes/er.rb
+++ b/lib/aethyr/core/actions/commands/emotes/er.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Er
-        class ErCommand < Aethyr::Core::Actions::CommandAction
+        class ErCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/ew.rb b/lib/aethyr/core/actions/commands/emotes/ew.rb
index 2a41c44..ae06a42 100644
--- a/lib/aethyr/core/actions/commands/emotes/ew.rb
+++ b/lib/aethyr/core/actions/commands/emotes/ew.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Ew
-        class EwCommand < Aethyr::Core::Actions::CommandAction
+        class EwCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/frown.rb b/lib/aethyr/core/actions/commands/emotes/frown.rb
index 27d91bc..bba0fa8 100644
--- a/lib/aethyr/core/actions/commands/emotes/frown.rb
+++ b/lib/aethyr/core/actions/commands/emotes/frown.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Frown
-        class FrownCommand < Aethyr::Core::Actions::CommandAction
+        class FrownCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/grin.rb b/lib/aethyr/core/actions/commands/emotes/grin.rb
index 762e52e..23da6e4 100644
--- a/lib/aethyr/core/actions/commands/emotes/grin.rb
+++ b/lib/aethyr/core/actions/commands/emotes/grin.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Grin
-        class GrinCommand < Aethyr::Core::Actions::CommandAction
+        class GrinCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/hi.rb b/lib/aethyr/core/actions/commands/emotes/hi.rb
index 906e5fa..53e3a68 100644
--- a/lib/aethyr/core/actions/commands/emotes/hi.rb
+++ b/lib/aethyr/core/actions/commands/emotes/hi.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Hi
-        class HiCommand < Aethyr::Core::Actions::CommandAction
+        class HiCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/hm.rb b/lib/aethyr/core/actions/commands/emotes/hm.rb
index fdb1b04..3f8fcb0 100644
--- a/lib/aethyr/core/actions/commands/emotes/hm.rb
+++ b/lib/aethyr/core/actions/commands/emotes/hm.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Hm
-        class HmCommand < Aethyr::Core::Actions::CommandAction
+        class HmCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/hug.rb b/lib/aethyr/core/actions/commands/emotes/hug.rb
index 6e03ca3..d2c3284 100644
--- a/lib/aethyr/core/actions/commands/emotes/hug.rb
+++ b/lib/aethyr/core/actions/commands/emotes/hug.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Hug
-        class HugCommand < Aethyr::Core::Actions::CommandAction
+        class HugCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/huh.rb b/lib/aethyr/core/actions/commands/emotes/huh.rb
index f94824f..b39bbdb 100644
--- a/lib/aethyr/core/actions/commands/emotes/huh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/huh.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Huh
-        class HuhCommand < Aethyr::Core::Actions::CommandAction
+        class HuhCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/laugh.rb b/lib/aethyr/core/actions/commands/emotes/laugh.rb
index 69909a8..c28bfa3 100644
--- a/lib/aethyr/core/actions/commands/emotes/laugh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/laugh.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Laugh
-        class LaughCommand < Aethyr::Core::Actions::CommandAction
+        class LaughCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/no.rb b/lib/aethyr/core/actions/commands/emotes/no.rb
index b9ecbdf..5b5a80b 100644
--- a/lib/aethyr/core/actions/commands/emotes/no.rb
+++ b/lib/aethyr/core/actions/commands/emotes/no.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module No
-        class NoCommand < Aethyr::Core::Actions::CommandAction
+        class NoCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/nod.rb b/lib/aethyr/core/actions/commands/emotes/nod.rb
index 899a99e..43f5cd2 100644
--- a/lib/aethyr/core/actions/commands/emotes/nod.rb
+++ b/lib/aethyr/core/actions/commands/emotes/nod.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Nod
-        class NodCommand < Aethyr::Core::Actions::CommandAction
+        class NodCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/pet.rb b/lib/aethyr/core/actions/commands/emotes/pet.rb
index 978bbc2..8b126f8 100644
--- a/lib/aethyr/core/actions/commands/emotes/pet.rb
+++ b/lib/aethyr/core/actions/commands/emotes/pet.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Pet
-        class PetCommand < Aethyr::Core::Actions::CommandAction
+        class PetCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/poke.rb b/lib/aethyr/core/actions/commands/emotes/poke.rb
index 9d4818b..a584526 100644
--- a/lib/aethyr/core/actions/commands/emotes/poke.rb
+++ b/lib/aethyr/core/actions/commands/emotes/poke.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Poke
-        class PokeCommand < Aethyr::Core::Actions::CommandAction
+        class PokeCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/ponder.rb b/lib/aethyr/core/actions/commands/emotes/ponder.rb
index 38b6fc7..fe06cb3 100644
--- a/lib/aethyr/core/actions/commands/emotes/ponder.rb
+++ b/lib/aethyr/core/actions/commands/emotes/ponder.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Ponder
-        class PonderCommand < Aethyr::Core::Actions::CommandAction
+        class PonderCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/shrug.rb b/lib/aethyr/core/actions/commands/emotes/shrug.rb
index bed18a1..175bad1 100644
--- a/lib/aethyr/core/actions/commands/emotes/shrug.rb
+++ b/lib/aethyr/core/actions/commands/emotes/shrug.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Shrug
-        class ShrugCommand < Aethyr::Core::Actions::CommandAction
+        class ShrugCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/sigh.rb b/lib/aethyr/core/actions/commands/emotes/sigh.rb
index c569907..b85c78c 100644
--- a/lib/aethyr/core/actions/commands/emotes/sigh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/sigh.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Sigh
-        class SighCommand < Aethyr::Core::Actions::CommandAction
+        class SighCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/skip.rb b/lib/aethyr/core/actions/commands/emotes/skip.rb
index 7bf91aa..87332f8 100644
--- a/lib/aethyr/core/actions/commands/emotes/skip.rb
+++ b/lib/aethyr/core/actions/commands/emotes/skip.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Skip
-        class SkipCommand < Aethyr::Core::Actions::CommandAction
+        class SkipCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/smile.rb b/lib/aethyr/core/actions/commands/emotes/smile.rb
index 4eabae9..15613d7 100644
--- a/lib/aethyr/core/actions/commands/emotes/smile.rb
+++ b/lib/aethyr/core/actions/commands/emotes/smile.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Smile
-        class SmileCommand < Aethyr::Core::Actions::CommandAction
+        class SmileCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/snicker.rb b/lib/aethyr/core/actions/commands/emotes/snicker.rb
index 722a5ca..245ec3c 100644
--- a/lib/aethyr/core/actions/commands/emotes/snicker.rb
+++ b/lib/aethyr/core/actions/commands/emotes/snicker.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Snicker
-        class SnickerCommand < Aethyr::Core::Actions::CommandAction
+        class SnickerCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/uh.rb b/lib/aethyr/core/actions/commands/emotes/uh.rb
index 5dec4ae..76f83c7 100644
--- a/lib/aethyr/core/actions/commands/emotes/uh.rb
+++ b/lib/aethyr/core/actions/commands/emotes/uh.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Uh
-        class UhCommand < Aethyr::Core::Actions::CommandAction
+        class UhCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/wave.rb b/lib/aethyr/core/actions/commands/emotes/wave.rb
index 2897f62..39a7759 100644
--- a/lib/aethyr/core/actions/commands/emotes/wave.rb
+++ b/lib/aethyr/core/actions/commands/emotes/wave.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Wave
-        class WaveCommand < Aethyr::Core::Actions::CommandAction
+        class WaveCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/yawn.rb b/lib/aethyr/core/actions/commands/emotes/yawn.rb
index 19d8ed4..f313f81 100644
--- a/lib/aethyr/core/actions/commands/emotes/yawn.rb
+++ b/lib/aethyr/core/actions/commands/emotes/yawn.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Yawn
-        class YawnCommand < Aethyr::Core::Actions::CommandAction
+        class YawnCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/actions/commands/emotes/yes.rb b/lib/aethyr/core/actions/commands/emotes/yes.rb
index 8431deb..62cc287 100644
--- a/lib/aethyr/core/actions/commands/emotes/yes.rb
+++ b/lib/aethyr/core/actions/commands/emotes/yes.rb
@@ -1,10 +1,10 @@
-require "aethyr/core/actions/command_action"
+require "aethyr/core/actions/commands/emotes/emote_action"
 
 module Aethyr
   module Core
     module Actions
       module Yes
-        class YesCommand < Aethyr::Core::Actions::CommandAction
+        class YesCommand < Aethyr::Core::Actions::EmoteAction
           def initialize(actor, **data)
             super(actor, **data)
           end
diff --git a/lib/aethyr/core/input_handlers/emotes/agree.rb b/lib/aethyr/core/input_handlers/emotes/agree.rb
index c3ecbd3..00e82b1 100644
--- a/lib/aethyr/core/input_handlers/emotes/agree.rb
+++ b/lib/aethyr/core/input_handlers/emotes/agree.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/agree"
+require "aethyr/core/actions/commands/emotes/agree"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/back.rb b/lib/aethyr/core/input_handlers/emotes/back.rb
index 18410f7..3686787 100644
--- a/lib/aethyr/core/input_handlers/emotes/back.rb
+++ b/lib/aethyr/core/input_handlers/emotes/back.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/back"
+require "aethyr/core/actions/commands/emotes/back"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/blush.rb b/lib/aethyr/core/input_handlers/emotes/blush.rb
index 7cd80cd..83cc9ff 100644
--- a/lib/aethyr/core/input_handlers/emotes/blush.rb
+++ b/lib/aethyr/core/input_handlers/emotes/blush.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/blush"
+require "aethyr/core/actions/commands/emotes/blush"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/bow.rb b/lib/aethyr/core/input_handlers/emotes/bow.rb
index f8c086c..8da2217 100644
--- a/lib/aethyr/core/input_handlers/emotes/bow.rb
+++ b/lib/aethyr/core/input_handlers/emotes/bow.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/bow"
+require "aethyr/core/actions/commands/emotes/bow"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/brb.rb b/lib/aethyr/core/input_handlers/emotes/brb.rb
index 53a7585..fc52245 100644
--- a/lib/aethyr/core/input_handlers/emotes/brb.rb
+++ b/lib/aethyr/core/input_handlers/emotes/brb.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/brb"
+require "aethyr/core/actions/commands/emotes/brb"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/bye.rb b/lib/aethyr/core/input_handlers/emotes/bye.rb
index 4d18651..bb32281 100644
--- a/lib/aethyr/core/input_handlers/emotes/bye.rb
+++ b/lib/aethyr/core/input_handlers/emotes/bye.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/bye"
+require "aethyr/core/actions/commands/emotes/bye"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/cheer.rb b/lib/aethyr/core/input_handlers/emotes/cheer.rb
index 5b7701a..d3641a4 100644
--- a/lib/aethyr/core/input_handlers/emotes/cheer.rb
+++ b/lib/aethyr/core/input_handlers/emotes/cheer.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/cheer"
+require "aethyr/core/actions/commands/emotes/cheer"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/cry.rb b/lib/aethyr/core/input_handlers/emotes/cry.rb
index e6d4ad4..a115bb0 100644
--- a/lib/aethyr/core/input_handlers/emotes/cry.rb
+++ b/lib/aethyr/core/input_handlers/emotes/cry.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/cry"
+require "aethyr/core/actions/commands/emotes/cry"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/curtsey.rb b/lib/aethyr/core/input_handlers/emotes/curtsey.rb
index fda0418..fd968c6 100644
--- a/lib/aethyr/core/input_handlers/emotes/curtsey.rb
+++ b/lib/aethyr/core/input_handlers/emotes/curtsey.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/curtsey"
+require "aethyr/core/actions/commands/emotes/curtsey"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/eh.rb b/lib/aethyr/core/input_handlers/emotes/eh.rb
index 57eec23..1538d60 100644
--- a/lib/aethyr/core/input_handlers/emotes/eh.rb
+++ b/lib/aethyr/core/input_handlers/emotes/eh.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/eh"
+require "aethyr/core/actions/commands/emotes/eh"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/emote.rb b/lib/aethyr/core/input_handlers/emotes/emote.rb
index da804e9..7c421a1 100644
--- a/lib/aethyr/core/input_handlers/emotes/emote.rb
+++ b/lib/aethyr/core/input_handlers/emotes/emote.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/emote"
+require "aethyr/core/actions/commands/emotes/emote"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/emote_handler.rb b/lib/aethyr/core/input_handlers/emotes/emote_handler.rb
index db00b93..95629d4 100644
--- a/lib/aethyr/core/input_handlers/emotes/emote_handler.rb
+++ b/lib/aethyr/core/input_handlers/emotes/emote_handler.rb
@@ -7,143 +7,6 @@ module Aethyr
         super(player, commands, *args, **kwargs)
       end
 
-      protected
-
-      #Run an emote.
-      def make_emote event, player, room, &block
-        g = GenericEmote.new(event, player, room)
-        g.instance_eval(&block)
-        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
-        end
-      end
-
-
-      #Provides little DSL to easily create emotes.
-      class GenericEmote
-
-        attr_reader :return_event
-
-        def initialize(event, player, room)
-          @event = event
-          @event[:message_type] = :chat
-          @event[:player] = player
-          @player = player
-          @room = room
-          @post = event[:post]
-          @object = nil
-          @return_event = nil
-          find_target
-        end
-
-        #If there is no target, return the given block.
-        def no_target
-          return if @return_event
-
-          if @object.nil?
-            @return_event = yield
-          end
-        end
-
-        #If the target is the player, return the given block.
-        def self_target
-          return if @return_event
-
-          if @object == @player
-            @return_event = yield
-          end
-        end
-
-        #If there is a target, return the given block.
-        def target
-          return if @return_event
-
-          unless @object.nil?
-            @return_event = yield
-          end
-        end
-
-        #If nothing else matches, return the given block.
-        def default
-          @return_event = yield
-        end
-
-        #Provide output to show player.
-        def to_player output
-          @event[:to_player] = output
-          @event
-        end
-
-        #Provide output to show others.
-        def to_other output
-          @event[:to_other] = output
-          @event
-        end
-
-        #Provide output to show target.
-        def to_target output
-          @event[:to_target] = output
-          @event
-        end
-
-        #Provide output to show blind others.
-        def to_blind_other output
-          @event[:to_blind_other] = output
-          @event
-        end
-
-        #Provide output to show deaf others.
-        def to_deaf_other output
-          @event[:to_deaf_other] = output
-          @event
-        end
-
-        #Provide output to show blind target.
-        def to_blind_target output
-          @event[:to_blind_target] = output
-          @event
-        end
-
-        #Provide output to show deaf target.
-        def to_deaf_target output
-          @event[:to_deaf_target] = output
-          @event
-        end
-
-        #Appends suffix to emote.
-        def set_post
-          return if not @post
-          [:to_player, :to_other, :to_target, :to_blind_other, :to_blind_target, :to_deaf_other, :to_deaf_target].each do |t|
-            if @return_event[t]
-              if @return_event[t][-1,1] == "."
-                @return_event[t][-1] = ""
-              end
-
-              if @post[0,1] == ","
-                @return_event[t] << @post
-              else
-                @return_event[t] << " " << @post
-              end
-
-              unless ["!", "?", ".", "\"", "'"].include? @post[-1,1]
-                @return_event[t] << "."
-              end
-            end
-          end
-        end
-
-        private
-
-        #Find target for emote.
-        def find_target
-          if @object.nil? and @event[:object]
-            @object = @room.find(@event[:object]) || @player.search_inv(@event[:object])
-            @event[:target] = @object
-          end
-        end
-      end
     end
   end
 end
diff --git a/lib/aethyr/core/input_handlers/emotes/er.rb b/lib/aethyr/core/input_handlers/emotes/er.rb
index 35dd66c..e300061 100644
--- a/lib/aethyr/core/input_handlers/emotes/er.rb
+++ b/lib/aethyr/core/input_handlers/emotes/er.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/er"
+require "aethyr/core/actions/commands/emotes/er"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/ew.rb b/lib/aethyr/core/input_handlers/emotes/ew.rb
index df1ea55..01d8680 100644
--- a/lib/aethyr/core/input_handlers/emotes/ew.rb
+++ b/lib/aethyr/core/input_handlers/emotes/ew.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/ew"
+require "aethyr/core/actions/commands/emotes/ew"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/frown.rb b/lib/aethyr/core/input_handlers/emotes/frown.rb
index e6f68f6..b13a688 100644
--- a/lib/aethyr/core/input_handlers/emotes/frown.rb
+++ b/lib/aethyr/core/input_handlers/emotes/frown.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/frown"
+require "aethyr/core/actions/commands/emotes/frown"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/grin.rb b/lib/aethyr/core/input_handlers/emotes/grin.rb
index eab8842..eb75817 100644
--- a/lib/aethyr/core/input_handlers/emotes/grin.rb
+++ b/lib/aethyr/core/input_handlers/emotes/grin.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/grin"
+require "aethyr/core/actions/commands/emotes/grin"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/hi.rb b/lib/aethyr/core/input_handlers/emotes/hi.rb
index d5799e6..76c0433 100644
--- a/lib/aethyr/core/input_handlers/emotes/hi.rb
+++ b/lib/aethyr/core/input_handlers/emotes/hi.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/hi"
+require "aethyr/core/actions/commands/emotes/hi"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/hm.rb b/lib/aethyr/core/input_handlers/emotes/hm.rb
index 2d6745e..87c5084 100644
--- a/lib/aethyr/core/input_handlers/emotes/hm.rb
+++ b/lib/aethyr/core/input_handlers/emotes/hm.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/hm"
+require "aethyr/core/actions/commands/emotes/hm"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/hug.rb b/lib/aethyr/core/input_handlers/emotes/hug.rb
index 24d0c40..7e12df8 100644
--- a/lib/aethyr/core/input_handlers/emotes/hug.rb
+++ b/lib/aethyr/core/input_handlers/emotes/hug.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/hug"
+require "aethyr/core/actions/commands/emotes/hug"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/huh.rb b/lib/aethyr/core/input_handlers/emotes/huh.rb
index 325b201..7a63aa4 100644
--- a/lib/aethyr/core/input_handlers/emotes/huh.rb
+++ b/lib/aethyr/core/input_handlers/emotes/huh.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/huh"
+require "aethyr/core/actions/commands/emotes/huh"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/laugh.rb b/lib/aethyr/core/input_handlers/emotes/laugh.rb
index 25ba103..6558c1a 100644
--- a/lib/aethyr/core/input_handlers/emotes/laugh.rb
+++ b/lib/aethyr/core/input_handlers/emotes/laugh.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/laugh"
+require "aethyr/core/actions/commands/emotes/laugh"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/no.rb b/lib/aethyr/core/input_handlers/emotes/no.rb
index adbd8b5..ef4e790 100644
--- a/lib/aethyr/core/input_handlers/emotes/no.rb
+++ b/lib/aethyr/core/input_handlers/emotes/no.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/no"
+require "aethyr/core/actions/commands/emotes/no"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/nod.rb b/lib/aethyr/core/input_handlers/emotes/nod.rb
index 8a1a841..3afc61e 100644
--- a/lib/aethyr/core/input_handlers/emotes/nod.rb
+++ b/lib/aethyr/core/input_handlers/emotes/nod.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/nod"
+require "aethyr/core/actions/commands/emotes/nod"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/pet.rb b/lib/aethyr/core/input_handlers/emotes/pet.rb
index 7ed820f..073f392 100644
--- a/lib/aethyr/core/input_handlers/emotes/pet.rb
+++ b/lib/aethyr/core/input_handlers/emotes/pet.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/pet"
+require "aethyr/core/actions/commands/emotes/pet"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/poke.rb b/lib/aethyr/core/input_handlers/emotes/poke.rb
index b42bb9a..40f6b8c 100644
--- a/lib/aethyr/core/input_handlers/emotes/poke.rb
+++ b/lib/aethyr/core/input_handlers/emotes/poke.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/poke"
+require "aethyr/core/actions/commands/emotes/poke"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/ponder.rb b/lib/aethyr/core/input_handlers/emotes/ponder.rb
index 09f9307..cf44b9b 100644
--- a/lib/aethyr/core/input_handlers/emotes/ponder.rb
+++ b/lib/aethyr/core/input_handlers/emotes/ponder.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/ponder"
+require "aethyr/core/actions/commands/emotes/ponder"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/shrug.rb b/lib/aethyr/core/input_handlers/emotes/shrug.rb
index 19d9b86..27ac7f1 100644
--- a/lib/aethyr/core/input_handlers/emotes/shrug.rb
+++ b/lib/aethyr/core/input_handlers/emotes/shrug.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/shrug"
+require "aethyr/core/actions/commands/emotes/shrug"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/sigh.rb b/lib/aethyr/core/input_handlers/emotes/sigh.rb
index 5532ac3..d59d689 100644
--- a/lib/aethyr/core/input_handlers/emotes/sigh.rb
+++ b/lib/aethyr/core/input_handlers/emotes/sigh.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/sigh"
+require "aethyr/core/actions/commands/emotes/sigh"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/skip.rb b/lib/aethyr/core/input_handlers/emotes/skip.rb
index 7b5a70f..8ddaf2d 100644
--- a/lib/aethyr/core/input_handlers/emotes/skip.rb
+++ b/lib/aethyr/core/input_handlers/emotes/skip.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/skip"
+require "aethyr/core/actions/commands/emotes/skip"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/smile.rb b/lib/aethyr/core/input_handlers/emotes/smile.rb
index c78d332..f833063 100644
--- a/lib/aethyr/core/input_handlers/emotes/smile.rb
+++ b/lib/aethyr/core/input_handlers/emotes/smile.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/smile"
+require "aethyr/core/actions/commands/emotes/smile"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/snicker.rb b/lib/aethyr/core/input_handlers/emotes/snicker.rb
index c71ae1e..773aeae 100644
--- a/lib/aethyr/core/input_handlers/emotes/snicker.rb
+++ b/lib/aethyr/core/input_handlers/emotes/snicker.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/snicker"
+require "aethyr/core/actions/commands/emotes/snicker"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/uh.rb b/lib/aethyr/core/input_handlers/emotes/uh.rb
index 860fd93..67e9651 100644
--- a/lib/aethyr/core/input_handlers/emotes/uh.rb
+++ b/lib/aethyr/core/input_handlers/emotes/uh.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/uh"
+require "aethyr/core/actions/commands/emotes/uh"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/wave.rb b/lib/aethyr/core/input_handlers/emotes/wave.rb
index d65a189..d6e6208 100644
--- a/lib/aethyr/core/input_handlers/emotes/wave.rb
+++ b/lib/aethyr/core/input_handlers/emotes/wave.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/wave"
+require "aethyr/core/actions/commands/emotes/wave"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/yawn.rb b/lib/aethyr/core/input_handlers/emotes/yawn.rb
index 0f06d9f..937e481 100644
--- a/lib/aethyr/core/input_handlers/emotes/yawn.rb
+++ b/lib/aethyr/core/input_handlers/emotes/yawn.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/yawn"
+require "aethyr/core/actions/commands/emotes/yawn"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
diff --git a/lib/aethyr/core/input_handlers/emotes/yes.rb b/lib/aethyr/core/input_handlers/emotes/yes.rb
index cb7db80..cbc4fd4 100644
--- a/lib/aethyr/core/input_handlers/emotes/yes.rb
+++ b/lib/aethyr/core/input_handlers/emotes/yes.rb
@@ -1,4 +1,4 @@
-require "aethyr/core/actions/commands/yes"
+require "aethyr/core/actions/commands/emotes/yes"
 require "aethyr/core/registry"
 require "aethyr/core/input_handlers/emotes/emote_handler"
 
-- 
GitLab