Browse Source

Cleaned up string enums because implicit operators are picky.

tags/docs-0.9
RogueException 9 years ago
parent
commit
c0e6c2eb24
9 changed files with 32 additions and 46 deletions
  1. +2
    -2
      src/Discord.Net.Net45/Discord.Net.csproj
  2. +6
    -0
      src/Discord.Net/API/Enums/ChannelType.cs
  3. +6
    -0
      src/Discord.Net/API/Enums/PermissionTarget.cs
  4. +6
    -0
      src/Discord.Net/API/Enums/Region.cs
  5. +1
    -39
      src/Discord.Net/API/Enums/StringEnum.cs
  6. +6
    -0
      src/Discord.Net/API/Enums/UserStatus.cs
  7. +3
    -3
      src/Discord.Net/DiscordClient.Channels.cs
  8. +1
    -1
      src/Discord.Net/DiscordClient.Servers.cs
  9. +1
    -1
      src/Discord.Net/DiscordClient.Users.cs

+ 2
- 2
src/Discord.Net.Net45/Discord.Net.csproj View File

@@ -88,8 +88,8 @@
<Compile Include="..\Discord.Net\API\Enums\PermissionTarget.cs">
<Link>API\Enums\PermissionTarget.cs</Link>
</Compile>
<Compile Include="..\Discord.Net\API\Enums\Regions.cs">
<Link>API\Enums\Regions.cs</Link>
<Compile Include="..\Discord.Net\API\Enums\Region.cs">
<Link>API\Enums\Region.cs</Link>
</Compile>
<Compile Include="..\Discord.Net\API\Enums\StringEnum.cs">
<Link>API\Enums\StringEnum.cs</Link>


+ 6
- 0
src/Discord.Net/API/Enums/ChannelType.cs View File

@@ -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();
}
}

+ 6
- 0
src/Discord.Net/API/Enums/PermissionTarget.cs View File

@@ -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();
}
}

src/Discord.Net/API/Enums/Regions.cs → src/Discord.Net/API/Enums/Region.cs View File

@@ -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();
}
}

+ 1
- 39
src/Discord.Net/API/Enums/StringEnum.cs View File

@@ -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;
}
}
}

+ 6
- 0
src/Discord.Net/API/Enums/UserStatus.cs View File

@@ -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();
}
}

+ 3
- 3
src/Discord.Net/DiscordClient.Channels.cs View File

@@ -98,14 +98,14 @@ namespace Discord
if (channel != null)
query = query.Concat(new Channel[] { channel });
}
else if (name[0] == '#' && (type == (ChannelType)null || type == ChannelType.Text)) //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.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);


+ 1
- 1
src/Discord.Net/DiscordClient.Servers.cs View File

@@ -84,7 +84,7 @@ namespace Discord
public async Task<Server> 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);


+ 1
- 1
src/Discord.Net/DiscordClient.Users.cs View File

@@ -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();


Loading…
Cancel
Save