1+ package club .netsafe .hybrid .core ;
2+
3+ import club .netsafe .hybrid .core .commands .*;
4+ import club .netsafe .hybrid .core .listener .BungeeCordCommandLoggerListener ;
5+ import club .netsafe .hybrid .core .listener .CaptchaListener ;
6+ import club .netsafe .hybrid .core .listener .CommandLoggerListener ;
7+ import club .netsafe .hybrid .core .listener .MaintenanceListener ;
8+ import club .netsafe .hybrid .core .listener .PartyChatListener ;
9+ import club .netsafe .hybrid .core .listener .PlayerListener ;
10+ import club .netsafe .hybrid .core .listener .SecurityListener ;
11+ import club .netsafe .hybrid .core .listener .ServerListListener ;
12+ import club .netsafe .hybrid .core .manager .*;
13+ import club .netsafe .hybrid .core .util .MessageUtils ;
14+ import net .md_5 .bungee .api .plugin .Plugin ;
15+ import net .md_5 .bungee .config .Configuration ;
16+ import org .bstats .bungeecord .Metrics ;
17+
18+ /**
19+ * @author HCFAlerts
20+ * @project Hybrid
21+ * @org NetSafe LLC
22+ * @date 10/09/25
23+ */
24+
25+ public class HybridCore extends Plugin {
26+
27+ private static HybridCore instance ;
28+ private ConfigManager configManager ;
29+ private DatabaseManager databaseManager ;
30+ private RedisManager redisManager ;
31+ private PartyManager partyManager ;
32+ private FriendManager friendManager ;
33+ private ServerStatsManager serverStatsManager ;
34+ private AnnouncementManager announcementManager ;
35+ private CaptchaManager captchaManager ;
36+ private ModerationManager moderationManager ;
37+ private CommandLoggerManager commandLoggerManager ;
38+
39+ @ Override
40+ public void onEnable () {
41+ instance = this ;
42+
43+ configManager = new ConfigManager (getDataFolder ());
44+ configManager .load ();
45+ Configuration modules = configManager .getConfig ().getSection ("MODULES" );
46+
47+ if (modules .getBoolean ("FRIENDS" ) || modules .getBoolean ("PARTIES" )) {
48+ databaseManager = new DatabaseManager (this );
49+ }
50+
51+ if (modules .getBoolean ("SERVER_MANAGER" ) || modules .getBoolean ("SECURITY" )) {
52+ redisManager = new RedisManager (this );
53+ }
54+
55+ if (modules .getBoolean ("FRIENDS" )) {
56+ friendManager = new FriendManager (this );
57+ getProxy ().getPluginManager ().registerCommand (this , new FriendCommand (this ));
58+ getProxy ().getPluginManager ().registerListener (this , new PlayerListener (this ));
59+ getLogger ().info ("Friends module enabled." );
60+ }
61+
62+ if (modules .getBoolean ("PARTIES" )) {
63+ partyManager = new PartyManager (this );
64+ getProxy ().getPluginManager ().registerCommand (this , new PartyCommand (this ));
65+ getProxy ().getPluginManager ().registerListener (this , new PartyChatListener (this ));
66+ getLogger ().info ("Parties module enabled." );
67+ }
68+
69+ if (modules .getBoolean ("MAINTENANCE" )) {
70+ getProxy ().getPluginManager ().registerCommand (this , new MaintenanceCommand (this ));
71+ getProxy ().getPluginManager ().registerListener (this , new MaintenanceListener ());
72+ getLogger ().info ("Maintenance module enabled." );
73+ }
74+
75+ if (modules .getBoolean ("MOTD" )) {
76+ getProxy ().getPluginManager ().registerCommand (this , new MotdCommand (this ));
77+ getProxy ().getPluginManager ().registerListener (this , new ServerListListener (this ));
78+ getLogger ().info ("MOTD module enabled." );
79+ }
80+
81+ if (modules .getBoolean ("HUB_COMMAND" )) {
82+ getProxy ().getPluginManager ().registerCommand (this , new HubCommand (this ));
83+ getLogger ().info ("Hub Command enabled." );
84+ }
85+
86+ if (modules .getBoolean ("SEND_COMMAND" )) {
87+ getProxy ().getPluginManager ().registerCommand (this , new SendCommand (this ));
88+ getLogger ().info ("Send Command enabled." );
89+ }
90+
91+ if (modules .getBoolean ("MSG_COMMAND" )) {
92+ getProxy ().getPluginManager ().registerCommand (this , new MsgCommand (this ));
93+ getLogger ().info ("Message Command enabled." );
94+ }
95+
96+ if (modules .getBoolean ("SERVER_MANAGER" )) {
97+ serverStatsManager = new ServerStatsManager ();
98+ redisManager .startServerStatsSubscriber (serverStatsManager );
99+ getProxy ().getPluginManager ().registerCommand (this , new ServerManagerCommand (this ));
100+ getLogger ().info ("Server Manager module enabled." );
101+ }
102+
103+ if (modules .getBoolean ("SECURITY" )) {
104+ getProxy ().getPluginManager ().registerListener (this , new SecurityListener (this ));
105+ getLogger ().info ("Security module enabled." );
106+ }
107+
108+ if (modules .getBoolean ("ANNOUNCEMENTS" )) {
109+ announcementManager = new AnnouncementManager (this );
110+ getProxy ().getPluginManager ().registerCommand (this , new AnnouncementCommand (this ));
111+ getLogger ().info ("Announcements module enabled." );
112+ }
113+
114+ if (modules .getBoolean ("CAPTCHA" )) {
115+ captchaManager = new CaptchaManager (this );
116+ getProxy ().getPluginManager ().registerCommand (this , new CaptchaCommand (this ));
117+ getProxy ().getPluginManager ().registerListener (this , new CaptchaListener (this ));
118+ getLogger ().info ("Captcha module enabled." );
119+ }
120+
121+ if (modules .getBoolean ("MODERATION" )) {
122+ moderationManager = new ModerationManager (this );
123+ getProxy ().getPluginManager ().registerCommand (this , new HelpopCommand (this ));
124+ getProxy ().getPluginManager ().registerCommand (this , new ReportCommand (this ));
125+ getLogger ().info ("Moderation module enabled." );
126+ }
127+
128+ if (modules .getBoolean ("COMMAND_LOGGER" )) {
129+ commandLoggerManager = new CommandLoggerManager (this );
130+ getProxy ().getPluginManager ().registerCommand (this , new CommandLoggerCommand (this ));
131+ getProxy ().getPluginManager ().registerListener (this , new CommandLoggerListener (this ));
132+ getProxy ().getPluginManager ().registerListener (this , new BungeeCordCommandLoggerListener (this ));
133+ getLogger ().info ("Command Logger module enabled." );
134+ }
135+
136+ new Metrics (this , 27360 );
137+
138+ getLogger ().info ("" );
139+ getLogger ().info (MessageUtils .color ("&b██╗ ██╗██╗ ██╗██████╗ ██████╗ ██╗██████╗ " ));
140+ getLogger ().info (MessageUtils .color ("&b██║ ██║╚██╗ ██╔╝██╔══██╗██╔══██╗██║██╔══██╗" ));
141+ getLogger ().info (MessageUtils .color ("&b███████║ ╚████╔╝ ██████╔╝██████╔╝██║██║ ██║" ));
142+ getLogger ().info (MessageUtils .color ("&b██╔══██║ ╚██╔╝ ██╔══██╗██╔══██╗██║██║ ██║" ));
143+ getLogger ().info (MessageUtils .color ("&b██║ ██║ ██║ ██████╔╝██║ ██║██║██████╔╝" ));
144+ getLogger ().info (MessageUtils .color ("&b╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝╚═════╝ " ));
145+ getLogger ().info ("" );
146+ getLogger ().info (MessageUtils .color ("&bHybridCore BungeeCord &7v1.0.0 &asuccessfully loaded!" ));
147+ getLogger ().info (MessageUtils .color ("&7Made with &c❤ &7by &bNetSafe LLC &7- &ediscord.netsafe.club" ));
148+ getLogger ().info ("" );
149+ }
150+
151+ @ Override
152+ public void onDisable () {
153+ if (databaseManager != null ) {
154+ databaseManager .close ();
155+ }
156+ if (redisManager != null ) {
157+ redisManager .close ();
158+ }
159+ if (announcementManager != null ) {
160+ announcementManager .stop ();
161+ }
162+ if (captchaManager != null ) {
163+ captchaManager .stop ();
164+ }
165+ if (moderationManager != null ) {
166+ moderationManager .stop ();
167+ }
168+ if (commandLoggerManager != null ) {
169+ commandLoggerManager .stop ();
170+ }
171+ getLogger ().info ("HybridCore disconnected, goodbye." );
172+ }
173+
174+ public static HybridCore getInstance () {
175+ return instance ;
176+ }
177+
178+ public ConfigManager getConfigManager () {
179+ return configManager ;
180+ }
181+
182+ public RedisManager getRedisManager () {
183+ return redisManager ;
184+ }
185+
186+ public PartyManager getPartyManager () {
187+ return partyManager ;
188+ }
189+
190+ public DatabaseManager getDatabaseManager () {
191+ return databaseManager ;
192+ }
193+
194+ public FriendManager getFriendManager () {
195+ return friendManager ;
196+ }
197+
198+ public ServerStatsManager getServerStatsManager () {
199+ return serverStatsManager ;
200+ }
201+
202+ public AnnouncementManager getAnnouncementManager () {
203+ return announcementManager ;
204+ }
205+
206+ public CaptchaManager getCaptchaManager () {
207+ return captchaManager ;
208+ }
209+
210+ public ModerationManager getModerationManager () {
211+ return moderationManager ;
212+ }
213+
214+ public CommandLoggerManager getCommandLoggerManager () {
215+ return commandLoggerManager ;
216+ }
217+ }
0 commit comments