@@ -48,21 +48,30 @@ namespace Discord
{
{
var server = _client.Servers[x];
var server = _client.Servers[x];
if (server == null)
if (server == null)
{
server = _generatedServer = new Server(client, x);
server = _generatedServer = new Server(client, x);
server.Cache();
}
return server;
return server;
});
});
_inviter = new Reference<User>(serverId, x =>
_inviter = new Reference<User>(serverId, x =>
{
{
var inviter = _client.Users[x, _server.Id];
var inviter = _client.Users[x, _server.Id];
if (inviter == null)
if (inviter == null)
{
inviter = _generatedInviter = new User(client, x, _server.Id);
inviter = _generatedInviter = new User(client, x, _server.Id);
inviter.Cache();
}
return inviter;
return inviter;
});
});
_channel = new Reference<Channel>(serverId, x =>
_channel = new Reference<Channel>(serverId, x =>
{
{
var channel = _client.Channels[x];
var channel = _client.Channels[x];
if (channel == null)
if (channel == null)
{
channel = _generatedChannel = new Channel(client, x, _server.Id, null);
channel = _generatedChannel = new Channel(client, x, _server.Id, null);
channel.Cache();
}
return channel;
return channel;
});
});
}
}
@@ -75,9 +84,9 @@ namespace Discord
internal override void UnloadReferences() { }
internal override void UnloadReferences() { }
public override string ToString() => XkcdCode ?? Id;
public override string ToString() => XkcdCode ?? Id;
internal void Update(InviteInfo model)
internal void Update(InviteReference model)
{
{
if (model.Guild != null && _generatedServer != null)
if (model.Guild != null && _generatedServer != null)
_generatedServer.Update(model.Guild);
_generatedServer.Update(model.Guild);
@@ -85,6 +94,10 @@ namespace Discord
_generatedInviter.Update(model.Inviter);
_generatedInviter.Update(model.Inviter);
if (model.Channel != null && _generatedChannel != null)
if (model.Channel != null && _generatedChannel != null)
_generatedChannel.Update(model.Channel);
_generatedChannel.Update(model.Channel);
}
internal void Update(InviteInfo model)
{
Update(model as InviteReference);
if (model.IsRevoked != null)
if (model.IsRevoked != null)
IsRevoked = model.IsRevoked.Value;
IsRevoked = model.IsRevoked.Value;
@@ -96,6 +109,6 @@ namespace Discord
MaxUses = model.MaxUses.Value;
MaxUses = model.MaxUses.Value;
if (model.Uses != null)
if (model.Uses != null)
Uses = model.Uses.Value;
Uses = model.Uses.Value;
}
}
}
}
}
}