Ignore commands on certain serves

This commit is contained in:
runebaas 2019-07-30 00:42:08 +02:00
parent ac43d087b1
commit 7a250f6642
No known key found for this signature in database
GPG key ID: 2677AF508D0300D6
2 changed files with 27 additions and 4 deletions

View file

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -28,10 +29,12 @@ namespace Geekbot.net
private readonly IUserRepository _userRepository; private readonly IUserRepository _userRepository;
private readonly IReactionListener _reactionListener; private readonly IReactionListener _reactionListener;
private readonly DatabaseContext _messageCounterDatabaseContext; private readonly DatabaseContext _messageCounterDatabaseContext;
private readonly RestApplication _applicationInfo;
private readonly List<ulong> _ignoredServers;
public Handlers(DatabaseInitializer databaseInitializer, IDiscordClient client, IGeekbotLogger logger, IAlmostRedis redis, public Handlers(DatabaseInitializer databaseInitializer, IDiscordClient client, IGeekbotLogger logger, IAlmostRedis redis,
IServiceProvider servicesProvider, CommandService commands, IUserRepository userRepository, IServiceProvider servicesProvider, CommandService commands, IUserRepository userRepository,
IReactionListener reactionListener) IReactionListener reactionListener, RestApplication applicationInfo)
{ {
_database = databaseInitializer.Initialize(); _database = databaseInitializer.Initialize();
_messageCounterDatabaseContext = databaseInitializer.Initialize(); _messageCounterDatabaseContext = databaseInitializer.Initialize();
@ -42,6 +45,14 @@ namespace Geekbot.net
_commands = commands; _commands = commands;
_userRepository = userRepository; _userRepository = userRepository;
_reactionListener = reactionListener; _reactionListener = reactionListener;
_applicationInfo = applicationInfo;
// ToDo: create a clean solution for this...
_ignoredServers = new List<ulong>()
{
228623803201224704, // SwitzerLAN
169844523181015040, // EEvent
248531441548263425 // MYI
};
} }
// //
@ -56,10 +67,21 @@ namespace Geekbot.net
if (message.Author.IsBot) return Task.CompletedTask; if (message.Author.IsBot) return Task.CompletedTask;
var argPos = 0; var argPos = 0;
var guildId = ((SocketGuildChannel) message.Channel).Guild.Id;
// Some guilds only wanted very specific functionally without any of the commands, a quick hack that solves that short term...
// ToDo: cleanup
if (_ignoredServers.Contains(guildId))
{
if (message.Author.Id != _applicationInfo.Owner.Id)
{
return Task.CompletedTask;
}
}
var lowCaseMsg = message.ToString().ToLower(); var lowCaseMsg = message.ToString().ToLower();
if (lowCaseMsg.StartsWith("hui")) if (lowCaseMsg.StartsWith("hui"))
{ {
var hasPing = _database.GuildSettings.FirstOrDefault(guild => guild.GuildId.Equals(((SocketGuildChannel) message.Channel).Guild.Id.AsLong()))?.Hui ?? false; var hasPing = _database.GuildSettings.FirstOrDefault(guild => guild.GuildId.Equals(guildId.AsLong()))?.Hui ?? false;
if (hasPing) if (hasPing)
{ {
message.Channel.SendMessageAsync("hui!!!"); message.Channel.SendMessageAsync("hui!!!");
@ -69,7 +91,7 @@ namespace Geekbot.net
if (lowCaseMsg.StartsWith("ping ") || lowCaseMsg.Equals("ping")) if (lowCaseMsg.StartsWith("ping ") || lowCaseMsg.Equals("ping"))
{ {
var hasPing = _database.GuildSettings.FirstOrDefault(guild => guild.GuildId.Equals(((SocketGuildChannel) message.Channel).Guild.Id.AsLong()))?.Ping ?? false; var hasPing = _database.GuildSettings.FirstOrDefault(guild => guild.GuildId.Equals(guildId.AsLong()))?.Ping ?? false;
if (hasPing) if (hasPing)
{ {
message.Channel.SendMessageAsync("pong"); message.Channel.SendMessageAsync("pong");

View file

@ -156,6 +156,7 @@ namespace Geekbot.net
var isConneted = await IsConnected(); var isConneted = await IsConnected();
if (isConneted) if (isConneted)
{ {
var applicationInfo = await _client.GetApplicationInfoAsync();
await _client.SetGameAsync(_globalSettings.GetKey("Game")); await _client.SetGameAsync(_globalSettings.GetKey("Game"));
_logger.Information(LogSource.Geekbot, $"Now Connected as {_client.CurrentUser.Username} to {_client.Guilds.Count} Servers"); _logger.Information(LogSource.Geekbot, $"Now Connected as {_client.CurrentUser.Username} to {_client.Guilds.Count} Servers");
@ -170,7 +171,7 @@ namespace Geekbot.net
_servicesProvider = _services.BuildServiceProvider(); _servicesProvider = _services.BuildServiceProvider();
await _commands.AddModulesAsync(Assembly.GetEntryAssembly(), _servicesProvider); await _commands.AddModulesAsync(Assembly.GetEntryAssembly(), _servicesProvider);
var handlers = new Handlers(_databaseInitializer, _client, _logger, _redis, _servicesProvider, _commands, _userRepository, reactionListener); var handlers = new Handlers(_databaseInitializer, _client, _logger, _redis, _servicesProvider, _commands, _userRepository, reactionListener, applicationInfo);
_client.MessageReceived += handlers.RunCommand; _client.MessageReceived += handlers.RunCommand;
_client.MessageDeleted += handlers.MessageDeleted; _client.MessageDeleted += handlers.MessageDeleted;