       end
       |> Enum.join("\n")
 
-    Api.create_message!(msg.channel_id, statuses)
+    Api.create_message!(
+      msg.channel_id,
+      case statuses do
+        "" -> "Nothing has been configured yet."
+        _ -> statuses
+      end
+    )
   end
 
   @doc """

  end

  def _check_set_perms(msg) do
    guild = Nostrum.Cache.GuildCache.get!(msg.guild_id)
    member = Map.get(guild.members, msg.author.id)

    perms = Nostrum.Struct.Guild.Member.guild_channel_permissions(member, guild, msg.channel_id)

    if Enum.all?(
         [:administrator, :manage_channels, :manage_guild, :manage_roles],
         &(&1 not in perms)
       ) do
      mario_roles =
        guild.roles
        |> Enum.filter(fn {_id, %{name: name}} -> name == "mario" end)
        |> Enum.map(fn {id, _role} -> id end)

      if Enum.all?(member.roles, &(&1 not in mario_roles)) do
        raise ProtocolError, message: "You do not have permission to use this command."
      end
    end
  end


  Does the status command for every channel, aggregating the data into one message.
  """
  def statuses_command(msg) do
    datas =
      case msg.guild_id do
        nil ->
          [Redix.command!(:redix, ["HGET", "dm", msg.channel_id])]

        _ ->
          Redix.command!(:redix, ["HVALS", msg.guild_id])
      end

    statuses =
      for data <- datas do
        # TODO: parallelize this list comprehension
        %{"host" => host, "port" => port} = Jason.decode!(data)

        try do
          status = Protocols.Minecraft.get_status_message(host, port)
