diff --git a/Discord.Net.sln b/Discord.Net.sln
index 3aefab91d..1c32308ff 100644
--- a/Discord.Net.sln
+++ b/Discord.Net.sln
@@ -30,8 +30,6 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Discord.Net.Modules", "src\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Modules", "src\Discord.Net.Modules.Net45\Discord.Net.Modules.csproj", "{3091164F-66AE-4543-A63D-167C1116241D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestingProject", "TestingProject\TestingProject.csproj", "{6CD8116D-6749-4174-81EB-C4EB4B1F185B}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -81,12 +79,6 @@ Global
{3091164F-66AE-4543-A63D-167C1116241D}.FullDebug|Any CPU.Build.0 = Debug|Any CPU
{3091164F-66AE-4543-A63D-167C1116241D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3091164F-66AE-4543-A63D-167C1116241D}.Release|Any CPU.Build.0 = Release|Any CPU
- {6CD8116D-6749-4174-81EB-C4EB4B1F185B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6CD8116D-6749-4174-81EB-C4EB4B1F185B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6CD8116D-6749-4174-81EB-C4EB4B1F185B}.FullDebug|Any CPU.ActiveCfg = Debug|Any CPU
- {6CD8116D-6749-4174-81EB-C4EB4B1F185B}.FullDebug|Any CPU.Build.0 = Debug|Any CPU
- {6CD8116D-6749-4174-81EB-C4EB4B1F185B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6CD8116D-6749-4174-81EB-C4EB4B1F185B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -101,6 +93,5 @@ Global
{1B5603B4-6F8F-4289-B945-7BAAE523D740} = {DF03D4E8-38F6-4FE1-BC52-E38124BE8AFD}
{01584E8A-78DA-486F-9EF9-A894E435841B} = {EA68EBE2-51C8-4440-9EF7-D633C90A5D35}
{3091164F-66AE-4543-A63D-167C1116241D} = {DF03D4E8-38F6-4FE1-BC52-E38124BE8AFD}
- {6CD8116D-6749-4174-81EB-C4EB4B1F185B} = {6317A2E6-8E36-4C3E-949B-3F10EC888AB9}
EndGlobalSection
EndGlobal
diff --git a/README.md b/README.md
index 7136d32dc..845f996e8 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Discord.Net v0.8.0-beta1
+# Discord.Net v0.8.1-Beta
An unofficial .Net API Wrapper for the Discord client (http://discordapp.com).
Check out the [documentation](https://discordnet.readthedocs.org/en/latest/) or join the [Discord API Chat](https://discord.gg/0SBTUU1wZTVjAMPx).
diff --git a/src/Discord.Net.Net45/Discord.Net.csproj b/src/Discord.Net.Net45/Discord.Net.csproj
index ae77302da..9447f3985 100644
--- a/src/Discord.Net.Net45/Discord.Net.csproj
+++ b/src/Discord.Net.Net45/Discord.Net.csproj
@@ -88,8 +88,8 @@
API\Enums\PermissionTarget.cs
-
- API\Enums\Regions.cs
+
+ API\Enums\Region.cs
API\Enums\StringEnum.cs
diff --git a/src/Discord.Net/API/Enums/ChannelType.cs b/src/Discord.Net/API/Enums/ChannelType.cs
index 066d12565..7d787ae67 100644
--- a/src/Discord.Net/API/Enums/ChannelType.cs
+++ b/src/Discord.Net/API/Enums/ChannelType.cs
@@ -24,5 +24,11 @@
return new ChannelType(value);
}
}
+
+ public static implicit operator ChannelType(string value) => FromString(value);
+ public static bool operator ==(ChannelType a, ChannelType b) => a?._value == b?._value;
+ public static bool operator !=(ChannelType a, ChannelType b) => a?._value != b?._value;
+ public override bool Equals(object obj) => (obj as ChannelType)?._value == _value;
+ public override int GetHashCode() => _value.GetHashCode();
}
}
diff --git a/src/Discord.Net/API/Enums/PermissionTarget.cs b/src/Discord.Net/API/Enums/PermissionTarget.cs
index 28427f247..d501dc72b 100644
--- a/src/Discord.Net/API/Enums/PermissionTarget.cs
+++ b/src/Discord.Net/API/Enums/PermissionTarget.cs
@@ -24,5 +24,11 @@
return new PermissionTarget(value);
}
}
+
+ public static implicit operator PermissionTarget(string value) => FromString(value);
+ public static bool operator ==(PermissionTarget a, PermissionTarget b) => a?._value == b?._value;
+ public static bool operator !=(PermissionTarget a, PermissionTarget b) => a?._value != b?._value;
+ public override bool Equals(object obj) => (obj as PermissionTarget)?._value == _value;
+ public override int GetHashCode() => _value.GetHashCode();
}
}
diff --git a/src/Discord.Net/API/Enums/Regions.cs b/src/Discord.Net/API/Enums/Region.cs
similarity index 71%
rename from src/Discord.Net/API/Enums/Regions.cs
rename to src/Discord.Net/API/Enums/Region.cs
index 505778ad5..090f7cbda 100644
--- a/src/Discord.Net/API/Enums/Regions.cs
+++ b/src/Discord.Net/API/Enums/Region.cs
@@ -34,5 +34,11 @@
return new Region(value);
}
}
+
+ public static implicit operator Region(string value) => FromString(value);
+ public static bool operator ==(Region a, Region b) => a?._value == b?._value;
+ public static bool operator !=(Region a, Region b) => a?._value != b?._value;
+ public override bool Equals(object obj) => (obj as Region)?._value == _value;
+ public override int GetHashCode() => _value.GetHashCode();
}
}
diff --git a/src/Discord.Net/API/Enums/StringEnum.cs b/src/Discord.Net/API/Enums/StringEnum.cs
index 88a527dd2..98cf70e0e 100644
--- a/src/Discord.Net/API/Enums/StringEnum.cs
+++ b/src/Discord.Net/API/Enums/StringEnum.cs
@@ -2,7 +2,7 @@
{
public abstract class StringEnum
{
- private string _value;
+ protected string _value;
protected StringEnum(string value)
{
_value = value;
@@ -10,43 +10,5 @@
public string Value => _value;
public override string ToString() => _value;
-
- public override bool Equals(object obj)
- {
- var enum2 = obj as StringEnum;
- if (enum2 == (StringEnum)null)
- return false;
- else
- return _value == enum2._value;
- }
- public override int GetHashCode()
- {
- return _value.GetHashCode();
- }
-
- public static bool operator ==(StringEnum a, StringEnum b)
- {
- return a?._value == b?._value;
- }
- public static bool operator !=(StringEnum a, StringEnum b)
- {
- return a?._value != b?._value;
- }
- public static bool operator ==(StringEnum a, string b)
- {
- return a?._value == b;
- }
- public static bool operator !=(StringEnum a, string b)
- {
- return a?._value != b;
- }
- public static bool operator ==(string a, StringEnum b)
- {
- return a == b?._value;
- }
- public static bool operator !=(string a, StringEnum b)
- {
- return a != b?._value;
- }
}
}
diff --git a/src/Discord.Net/API/Enums/UserStatus.cs b/src/Discord.Net/API/Enums/UserStatus.cs
index 493c9ec50..367a796a0 100644
--- a/src/Discord.Net/API/Enums/UserStatus.cs
+++ b/src/Discord.Net/API/Enums/UserStatus.cs
@@ -28,5 +28,11 @@
return new UserStatus(value);
}
}
+
+ public static implicit operator UserStatus(string value) => FromString(value);
+ public static bool operator ==(UserStatus a, UserStatus b) => a?._value == b?._value;
+ public static bool operator !=(UserStatus a, UserStatus b) => a?._value != b?._value;
+ public override bool Equals(object obj) => (obj as UserStatus)?._value == _value;
+ public override int GetHashCode() => _value.GetHashCode();
}
}
diff --git a/src/Discord.Net/DiscordClient.Channels.cs b/src/Discord.Net/DiscordClient.Channels.cs
index 0c89a7a13..beef45a35 100644
--- a/src/Discord.Net/DiscordClient.Channels.cs
+++ b/src/Discord.Net/DiscordClient.Channels.cs
@@ -98,14 +98,14 @@ namespace Discord
if (channel != null)
query = query.Concat(new Channel[] { channel });
}
- else if (name[0] == '#') //If we somehow get text starting with # but isn't a mention
+ else if (name[0] == '#' && (type == null || type == ChannelType.Text)) //If we somehow get text starting with # but isn't a mention
{
string name2 = name.Substring(1);
- query = query.Concat(server.Channels.Where(x => string.Equals(x.Name, name2, StringComparison.OrdinalIgnoreCase)));
+ query = query.Concat(server.TextChannels.Where(x => string.Equals(x.Name, name2, StringComparison.OrdinalIgnoreCase)));
}
}
- if (type != (string)null)
+ if (type != null)
query = query.Where(x => x.Type == type);
return query;
}
@@ -115,7 +115,7 @@ namespace Discord
{
if (server == null) throw new ArgumentNullException(nameof(server));
if (name == null) throw new ArgumentNullException(nameof(name));
- if (type == (string)null) throw new ArgumentNullException(nameof(type));
+ if (type == null) throw new ArgumentNullException(nameof(type));
CheckReady();
var response = await _api.CreateChannel(server.Id, name, type.Value).ConfigureAwait(false);
diff --git a/src/Discord.Net/DiscordClient.Servers.cs b/src/Discord.Net/DiscordClient.Servers.cs
index ff66948f4..2066be5b7 100644
--- a/src/Discord.Net/DiscordClient.Servers.cs
+++ b/src/Discord.Net/DiscordClient.Servers.cs
@@ -84,7 +84,7 @@ namespace Discord
public async Task CreateServer(string name, Region region)
{
if (name == null) throw new ArgumentNullException(nameof(name));
- if (region == (string)null) throw new ArgumentNullException(nameof(region));
+ if (region == null) throw new ArgumentNullException(nameof(region));
CheckReady();
var response = await _api.CreateServer(name, region.Value).ConfigureAwait(false);
diff --git a/src/Discord.Net/DiscordClient.Users.cs b/src/Discord.Net/DiscordClient.Users.cs
index ed4e048e7..aa7e931b1 100644
--- a/src/Discord.Net/DiscordClient.Users.cs
+++ b/src/Discord.Net/DiscordClient.Users.cs
@@ -250,7 +250,7 @@ namespace Discord
public Task SetStatus(UserStatus status)
{
- if (status == (string)null) throw new ArgumentNullException(nameof(status));
+ if (status == null) throw new ArgumentNullException(nameof(status));
if (status != UserStatus.Online && status != UserStatus.Idle)
throw new ArgumentException($"Invalid status, must be {UserStatus.Online} or {UserStatus.Idle}", nameof(status));
CheckReady();
diff --git a/src/Discord.Net/Helpers/Mention.cs b/src/Discord.Net/Helpers/Mention.cs
index d128e30bd..69553fbd7 100644
--- a/src/Discord.Net/Helpers/Mention.cs
+++ b/src/Discord.Net/Helpers/Mention.cs
@@ -16,7 +16,7 @@ namespace Discord
/// Returns the string used to create a channel mention.
public static string Channel(Channel channel)
=> $"<#{channel.Id}>";
- /// Returns the string used to create a channel mention.
+ /// Returns the string used to create a mention to everyone in a channel.
public static string Everyone()
=> $"@everyone";