Skip to content

Commit

Permalink
feat: add Server::getIpBanList
Browse files Browse the repository at this point in the history
  • Loading branch information
wu-vincent committed Dec 22, 2024
1 parent 17b255e commit 2ac388f
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 0 deletions.
3 changes: 3 additions & 0 deletions include/endstone/detail/server.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include "bedrock/resources/resource_pack_repository_interface.h"
#include "bedrock/server/server_instance.h"
#include "endstone/command/console_command_sender.h"
#include "endstone/detail/ban/ip_ban_list.h"
#include "endstone/detail/ban/player_ban_list.h"
#include "endstone/detail/command/command_map.h"
#include "endstone/detail/lang/language.h"
Expand Down Expand Up @@ -105,6 +106,7 @@ class EndstoneServer : public Server {
[[nodiscard]] Result<std::shared_ptr<BlockData>> createBlockData(std::string type,
BlockStates block_states) const override;
[[nodiscard]] PlayerBanList &getBanList() const override;
[[nodiscard]] IpBanList &getIpBanList() const override;

[[nodiscard]] EndstoneScoreboard &getPlayerBoard(const EndstonePlayer &player) const;
void setPlayerBoard(EndstonePlayer &player, Scoreboard &scoreboard);
Expand All @@ -122,6 +124,7 @@ class EndstoneServer : public Server {
ServerInstance *server_instance_;
Logger &logger_;
std::unique_ptr<EndstonePlayerBanList> player_ban_list_;
std::unique_ptr<EndstoneIpBanList> ip_ban_list_;
std::unique_ptr<EndstoneLanguage> language_;
std::unique_ptr<EndstoneCommandMap> command_map_;
std::unique_ptr<EndstonePluginManager> plugin_manager_;
Expand Down
8 changes: 8 additions & 0 deletions include/endstone/server.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <string_view>
#include <vector>

#include "endstone/ban/ip_ban_list.h"
#include "endstone/ban/player_ban_list.h"
#include "endstone/block/block_data.h"
#include "endstone/boss/boss_bar.h"
Expand Down Expand Up @@ -340,6 +341,13 @@ class Server {
*/
[[nodiscard]] virtual PlayerBanList &getBanList() const = 0;

/**
* Gets the IP ban list.
*
* @return The IP ban list
*/
[[nodiscard]] virtual IpBanList &getIpBanList() const = 0;

/**
* @brief Used for all administrative messages, such as an operator using a command.
*/
Expand Down
6 changes: 6 additions & 0 deletions src/endstone_core/server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ EndstoneServer::EndstoneServer() : logger_(LoggerFactory::getLogger("Server"))
register_signal_handler();

player_ban_list_ = std::make_unique<EndstonePlayerBanList>("banned-players.json");
ip_ban_list_ = std::make_unique<EndstoneIpBanList>("banned-ips.json");
language_ = std::make_unique<EndstoneLanguage>();
plugin_manager_ = std::make_unique<EndstonePluginManager>(*this);
scheduler_ = std::make_unique<EndstoneScheduler>(*this);
Expand All @@ -70,6 +71,7 @@ void EndstoneServer::init(ServerInstance &server_instance)
getName(), getVersion(), getMinecraftVersion());
command_sender_ = EndstoneConsoleCommandSender::create();
player_ban_list_->load();
ip_ban_list_->load();
}

EndstonePackSource &EndstoneServer::createResourcePackSource(Bedrock::NotNullNonOwnerPtr<IResourcePackRepository> repo)
Expand Down Expand Up @@ -447,6 +449,10 @@ PlayerBanList &EndstoneServer::getBanList() const
{
return *player_ban_list_;
}
IpBanList &EndstoneServer::getIpBanList() const
{
return *ip_ban_list_;
}

EndstoneScoreboard &EndstoneServer::getPlayerBoard(const EndstonePlayer &player) const
{
Expand Down
1 change: 1 addition & 0 deletions tests/plugin/test_cpp_plugin_loader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ class MockServer : public endstone::Server {
MOCK_METHOD(endstone::Result<std::shared_ptr<endstone::BlockData>>, createBlockData,
(std::string, endstone::BlockStates), (const, override));
MOCK_METHOD(endstone::PlayerBanList &, getBanList, (), (const, override));
MOCK_METHOD(endstone::IpBanList &, getIpBanList, (), (const, override));

MockServer()
{
Expand Down
1 change: 1 addition & 0 deletions tests/scheduler/test_scheduler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ class MockServer : public endstone::Server {
MOCK_METHOD(endstone::Result<std::shared_ptr<endstone::BlockData>>, createBlockData,
(std::string, endstone::BlockStates), (const, override));
MOCK_METHOD(endstone::PlayerBanList &, getBanList, (), (const, override));
MOCK_METHOD(endstone::IpBanList &, getIpBanList, (), (const, override));
};

class MockPlugin : public endstone::Plugin {
Expand Down

0 comments on commit 2ac388f

Please sign in to comment.