mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-19 20:11:59 +03:00
handle rate limited channels
This commit is contained in:
29
components/ratelimitindicator.hpp
Normal file
29
components/ratelimitindicator.hpp
Normal file
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
#include <gtkmm.h>
|
||||
#include <unordered_map>
|
||||
#include <chrono>
|
||||
#include "../discord/message.hpp"
|
||||
|
||||
class RateLimitIndicator : public Gtk::Box {
|
||||
public:
|
||||
RateLimitIndicator();
|
||||
void SetActiveChannel(Snowflake id);
|
||||
|
||||
// even tho this probably isnt the right place for this im gonna do it anyway to reduce coad
|
||||
bool CanSpeak() const;
|
||||
|
||||
private:
|
||||
int GetTimeLeft() const;
|
||||
int GetRateLimit() const;
|
||||
bool UpdateIndicator();
|
||||
void OnMessageCreate(const Message &message);
|
||||
|
||||
Gtk::Image m_img;
|
||||
Gtk::Label m_label;
|
||||
|
||||
sigc::connection m_connection;
|
||||
|
||||
int m_rate_limit;
|
||||
Snowflake m_active_channel;
|
||||
std::unordered_map<Snowflake, std::chrono::time_point<std::chrono::steady_clock>> m_times;
|
||||
};
|
||||
Reference in New Issue
Block a user