bomberman game started
This commit is contained in:
parent
589b5bcd93
commit
79fc73b865
8
NadekoBot/Classes/BombermanGame.cs
Normal file
8
NadekoBot/Classes/BombermanGame.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace NadekoBot.Classes
|
||||
{
|
||||
class BombermanGame
|
||||
{
|
||||
public ulong ChannelId { get; internal set; }
|
||||
public bool Ended { get; internal set; }
|
||||
}
|
||||
}
|
56
NadekoBot/Commands/Bomberman.cs
Normal file
56
NadekoBot/Commands/Bomberman.cs
Normal file
@ -0,0 +1,56 @@
|
||||
using Discord;
|
||||
using Discord.Commands;
|
||||
using NadekoBot.Classes;
|
||||
using NadekoBot.Modules;
|
||||
using System;
|
||||
|
||||
namespace NadekoBot.Commands
|
||||
{
|
||||
class Bomberman : DiscordCommand
|
||||
{
|
||||
public Bomberman(DiscordModule module) : base(module)
|
||||
{
|
||||
NadekoBot.Client.MessageReceived += async (s, e) =>
|
||||
{
|
||||
if (e.Channel.Id != bombGame.ChannelId) return;
|
||||
|
||||
var text = e.Message.Text;
|
||||
await e.Message.Delete();
|
||||
HandleBombermanCommand(e.User, text);
|
||||
};
|
||||
}
|
||||
|
||||
private void HandleBombermanCommand(User user, string text)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//only one bomberman game can run at any one time
|
||||
public static BombermanGame bombGame = null;
|
||||
private readonly object locker = new object();
|
||||
internal override void Init(CommandGroupBuilder cgb)
|
||||
{
|
||||
cgb.CreateCommand($"{Module.Prefix}bmb")
|
||||
.Description("Creates a bomberman game for this channel or join existing one." +
|
||||
" If you are 4th player - Game will start. After game starts " +
|
||||
" everything written in the channel will be autodeleted and treated as a bomberman command." +
|
||||
" only one bomberman game can run at any one time per bot. Game will run at 1FPS." +
|
||||
" You must have manage messages permissions in order to create the game.")
|
||||
.Do(e =>
|
||||
{
|
||||
lock (locker)
|
||||
{
|
||||
if (bombGame == null || bombGame.Ended)
|
||||
{
|
||||
if (!e.User.ServerPermissions.ManageMessages ||
|
||||
!e.Server.GetUser(NadekoBot.Client.CurrentUser.Id).ServerPermissions.ManageMessages)
|
||||
{
|
||||
e.Channel.SendMessage("Both you and Nadeko need manage messages permissions to start a new bomberman game.").Wait();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user