Skip to content

Commit 52dab99

Browse files
committed
discord start rebuild && rebuild support all version custom head
1 parent 8042760 commit 52dab99

File tree

8 files changed

+132
-141
lines changed

8 files changed

+132
-141
lines changed

build.gradle

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,11 @@ dependencies {
3636

3737
// SQLite JDBC драйвер
3838
implementation 'org.xerial:sqlite-jdbc:3.45.1.0'
39+
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
3940

4041
// Логування для JDBI (опціонально, для налагодження)
41-
implementation 'org.jdbi:jdbi3-sqlobject:3.38.0'
42-
runtimeOnly 'org.slf4j:slf4j-api:2.0.7'
4342

44-
// JDA
45-
implementation("net.dv8tion:JDA:5.0.0-beta.22") {
46-
exclude module: "opus-java" // Убираем аудио
47-
exclude group: "org.slf4j" // Если используете другой логгер
48-
}
43+
4944
}
5045

5146
def targetJavaVersion = 17
@@ -82,8 +77,11 @@ shadowJar {
8277
mergeServiceFiles()
8378
minimize()
8479
exclude 'org/sqlite/native/**'
80+
81+
// Переносим все зависимости в пространство имен org.referix.libs
8582
relocate 'org.jdbi', 'org.referix.libs.jdbi'
8683
relocate 'org.sqlite', 'org.referix.libs.sqlite'
8784
}
8885

86+
8987
build.dependsOn shadowJar

src/main/java/org/referix/birthDayReload/BirthDayReload.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@
77
import org.bukkit.plugin.java.JavaPlugin;
88
import org.referix.birthDayReload.command.MainCommand;
99
import org.referix.birthDayReload.database.Database;
10-
import org.referix.birthDayReload.discord.DiscordManager;
11-
import org.referix.birthDayReload.discord.DiscordService;
1210
import org.referix.birthDayReload.discord.DiscordSettings;
13-
import org.referix.birthDayReload.discord.services.MessageService;
1411
import org.referix.birthDayReload.inventory.PresentInventory;
1512
import org.referix.birthDayReload.inventory.InventoryClickHandler;
1613
import org.referix.birthDayReload.inventory.InventoryManager;
@@ -28,9 +25,6 @@ public final class BirthDayReload extends JavaPlugin {
2825
private static BirthDayReload instance;
2926

3027
private MessageManager messageManager;
31-
private MessageService messageService;
32-
private DiscordService discordService;
33-
private DiscordManager discordManager;
3428
private DiscordSettings discordSettings;
3529

3630
private ItemManagerConfig itemConfig;
@@ -62,8 +56,6 @@ public void onEnable() {
6256
this.itemConfig = new ItemManagerConfig(this); // Инициализируем здесь
6357
this.messageManager = new MessageManager(this);
6458
this.discordSettings = new DiscordSettings(messageManager);
65-
this.discordService = new DiscordService(discordSettings);
66-
this.messageService = new MessageService(discordService);
6759
this.itemConfig = new ItemManagerConfig(this);
6860
log("ItemManagerConfig initialized: " + (itemConfig != null));
6961
} catch (Exception e) {
@@ -85,9 +77,7 @@ public void onEnable() {
8577
try {
8678
log("Try to start Discord Bot...");
8779
DiscordSettings discordSettings = new DiscordSettings(messageManager);
88-
discordManager = new DiscordManager(discordService);
8980
if (discordSettings.getIsEnabled()) {
90-
discordManager.start();
9181

9282
// discordManager.getMessageService().sendMessage("Плагин BirthDayReload успешно запущен!");
9383

@@ -109,7 +99,7 @@ public void onEnable() {
10999

110100
// Создаем и регистрируем команды
111101
log("Creating MainCommand instance...");
112-
new MainCommand("birthday", null, messageManager, messageService, presentInventory);
102+
new MainCommand("birthday", null, messageManager, presentInventory);
113103
log("MainCommand registered successfully as 'birthday'.");
114104

115105
log("Commands registered successfully.");
@@ -132,7 +122,7 @@ public void onEnable() {
132122
try {
133123
log("Registering listeners...");
134124
getServer().getPluginManager().registerEvents(new InventoryClickHandler(), this);
135-
getServer().getPluginManager().registerEvents(new MainListener(textureKey,luckPermUtils,messageManager,messageService), this);
125+
getServer().getPluginManager().registerEvents(new MainListener(textureKey,luckPermUtils,messageManager), this);
136126
log("Listeners registered successfully.");
137127
} catch (Exception e) {
138128
log("Error registering listeners: " + e.getMessage());
@@ -146,9 +136,6 @@ public void onEnable() {
146136

147137
@Override
148138
public void onDisable() {
149-
if (discordManager != null) {
150-
discordManager.stop();
151-
}
152139
}
153140

154141
public LuckPerm getLuckPermUtils() {

src/main/java/org/referix/birthDayReload/MainListener.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
import org.bukkit.inventory.meta.ItemMeta;
1818
import org.bukkit.persistence.PersistentDataContainer;
1919
import org.bukkit.persistence.PersistentDataType;
20-
import org.referix.birthDayReload.discord.services.DiscordMessage;
21-
import org.referix.birthDayReload.discord.services.MessageService;
2220
import org.referix.birthDayReload.inventory.InventoryManager;
2321
import org.referix.birthDayReload.playerdata.PlayerData;
2422
import org.referix.birthDayReload.playerdata.PlayerManager;
@@ -35,13 +33,12 @@ public class MainListener implements Listener {
3533
private final NamespacedKey textureKey;
3634
private final LuckPerm luckPerm;
3735
private final MessageManager messageManager;
38-
private final MessageService messageService;
3936

40-
public MainListener(NamespacedKey textureKey, LuckPerm luckPerm, MessageManager messageManager, MessageService messageService) {
37+
38+
public MainListener(NamespacedKey textureKey, LuckPerm luckPerm, MessageManager messageManager ) {
4139
this.textureKey = textureKey;
4240
this.luckPerm = luckPerm;
4341
this.messageManager = messageManager;
44-
this.messageService = messageService;
4542
}
4643

4744
@EventHandler

src/main/java/org/referix/birthDayReload/command/MainCommand.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import org.bukkit.Bukkit;
66
import org.bukkit.command.CommandSender;
77
import org.bukkit.entity.Player;
8-
import org.referix.birthDayReload.discord.services.DiscordMessage;
9-
import org.referix.birthDayReload.discord.services.MessageService;
108
import org.referix.birthDayReload.inventory.PresentInventory;
119
import org.referix.birthDayReload.inventory.YearInventory;
1210
import org.referix.birthDayReload.playerdata.PlayerData;
@@ -26,13 +24,11 @@
2624
public class MainCommand extends AbstractCommand {
2725

2826
private final MessageManager messageManager;
29-
private final MessageService messageService;
3027
InventoryCommand inventoryCommand;
3128

32-
public MainCommand(String command, YearInventory birthdayInventory, MessageManager messageManager, MessageService messageService, PresentInventory presentInventory) {
29+
public MainCommand(String command, YearInventory birthdayInventory, MessageManager messageManager, PresentInventory presentInventory) {
3330
super(command);
3431
this.messageManager = messageManager;
35-
this.messageService = messageService;
3632
inventoryCommand = new InventoryCommand(presentInventory);
3733
}
3834

@@ -128,8 +124,6 @@ private void handleSet(CommandSender sender, String[] args) {
128124
"date", data.getBirthday().toString()
129125
);
130126

131-
DiscordMessage discordMessage = messageManager.getParsedDiscordMessage("Discord.Embedded-messages.set-birthday", placeholders);
132-
messageService.sendEmbed(discordMessage);
133127
} else {
134128
sendMessage(player, messageManager.BIRTHDAY_SET_FUTURE_ERROR);
135129
}
@@ -178,8 +172,6 @@ private void handleDelete(CommandSender sender, String[] args) {
178172
"player", player.getName()
179173
);
180174

181-
DiscordMessage discordMessage = messageManager.getParsedDiscordMessage("Discord.Embedded-messages.admin-delete-birthday", placeholders);
182-
messageService.sendEmbed(discordMessage);
183175
}
184176

185177
private void handleList(CommandSender sender, String[] args) {
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package org.referix.birthDayReload.discord;
2+
3+
import okhttp3.*;
4+
5+
import java.io.IOException;
6+
7+
public class DiscordHttp {
8+
9+
private final String botToken;
10+
private final String channelId;
11+
private final OkHttpClient client;
12+
13+
// Конструктор для ініціалізації токена та ID каналу
14+
public DiscordHttp(String botToken, String channelId) {
15+
this.botToken = botToken;
16+
this.channelId = channelId;
17+
this.client = new OkHttpClient();
18+
}
19+
20+
public void sendEmbedMessage(String title, String description, int color) {
21+
String embedJson = String.format("""
22+
{
23+
"embeds": [
24+
{
25+
"title": "%s",
26+
"description": "%s",
27+
"color": %d
28+
}
29+
]
30+
}
31+
""", title, description, color);
32+
33+
sendRequest(embedJson);
34+
}
35+
36+
// Приватний метод для виконання HTTP-запиту
37+
private void sendRequest(String json) {
38+
RequestBody body = RequestBody.create(
39+
MediaType.parse("application/json"),
40+
json
41+
);
42+
43+
Request request = new Request.Builder()
44+
.url("https://discord.com/api/v10/channels/" + channelId + "/messages")
45+
.post(body)
46+
.addHeader("Authorization", "Bot " + botToken)
47+
.addHeader("Content-Type", "application/json")
48+
.build();
49+
50+
try (Response response = client.newCall(request).execute()) {
51+
if (response.isSuccessful()) {
52+
System.out.println("Message sent successfully!");
53+
} else {
54+
System.err.println("Failed to send message. Error: " + response.code());
55+
System.err.println(response.body().string());
56+
}
57+
} catch (IOException e) {
58+
e.printStackTrace();
59+
}
60+
}
61+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package org.referix.birthDayReload.discord;
2+
3+
import org.referix.birthDayReload.utils.configmannagers.MessageManager;
4+
5+
public class DiscordSettings {
6+
private final String token;
7+
private final String channelId;
8+
private final boolean isEnabled;
9+
10+
public DiscordSettings(MessageManager messageManager) {
11+
this.token = messageManager.DISCORD_TOKEN;
12+
this.channelId = messageManager.DISCORD_CHANNEL_ID;
13+
this.isEnabled = messageManager.DISCORD_ENABLED;
14+
15+
if (token.isEmpty()) {
16+
throw new IllegalArgumentException("Discord token is not specified in the configuration!");
17+
}
18+
if (channelId.isEmpty()) {
19+
throw new IllegalArgumentException("Discord channel ID is not specified in the configuration!");
20+
}
21+
}
22+
23+
public String getToken() {
24+
return token;
25+
}
26+
27+
public String getChannelId() {
28+
return channelId;
29+
}
30+
31+
public boolean getIsEnabled() {
32+
return isEnabled;
33+
}
34+
}

src/main/java/org/referix/birthDayReload/utils/configmannagers/MessageManager.java

Lines changed: 1 addition & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@
22

33
import net.kyori.adventure.text.Component;
44
import org.bukkit.plugin.Plugin;
5-
import org.referix.birthDayReload.discord.services.DiscordMessage;
65

76
import java.time.LocalDate;
87
import java.time.format.DateTimeFormatter;
98
import java.time.format.DateTimeParseException;
10-
import java.util.ArrayList;
11-
import java.util.List;
12-
import java.util.Map;
9+
1310

1411
public class MessageManager {
1512
private final ConfigUtils configUtils;
@@ -107,14 +104,6 @@ public void reloadMessages() {
107104
plugin.getLogger().info("Messages reloaded successfully.");
108105
}
109106

110-
public boolean isValidDate(String date) {
111-
try {
112-
parseDate(date);
113-
return true;
114-
} catch (DateTimeParseException e) {
115-
return false;
116-
}
117-
}
118107

119108
public LocalDate parseDate(String date) {
120109
String normalizedDate = normalizeDate(date);
@@ -144,44 +133,6 @@ public LocalDate parseDate(String date) {
144133
}
145134

146135

147-
public DiscordMessage getDiscordMessage(String path) {
148-
String title = configUtils.getString(path + ".title", "Default Title");
149-
String color = configUtils.getString(path + ".color", "WHITE");
150-
String[] message = configUtils.getStringList(path + ".message").toArray(new String[0]);
151-
return new DiscordMessage(title, color, message);
152-
}
153-
154-
public DiscordMessage getParsedDiscordMessage(String path, Map<String, String> placeholders) {
155-
// Получение данных из конфигурации
156-
String title = configUtils.getString(path + ".title", "Default Title").trim();
157-
String color = configUtils.getString(path + ".color", "WHITE").trim();
158-
List<String> messageLines = configUtils.getStringList(path + ".message");
159-
160-
// Замена плейсхолдеров в заголовке
161-
for (Map.Entry<String, String> entry : placeholders.entrySet()) {
162-
title = title.replace("%" + entry.getKey() + "%", entry.getValue());
163-
}
164-
165-
// Замена плейсхолдеров и удаление лишних пробелов в сообщениях
166-
List<String> parsedLines = new ArrayList<>();
167-
for (String line : messageLines) {
168-
line = line.trim(); // Убираем пробелы в начале и конце строки
169-
for (Map.Entry<String, String> entry : placeholders.entrySet()) {
170-
line = line.replace("%" + entry.getKey() + "%", entry.getValue());
171-
}
172-
parsedLines.add(line);
173-
}
174-
175-
// Преобразование списка в массив строк
176-
String[] parsedMessage = parsedLines.stream().map(String::trim).toArray(String[]::new);
177-
178-
// Возврат готового сообщения
179-
return new DiscordMessage(title, color, parsedMessage);
180-
}
181-
182-
183-
184-
185136
private String normalizeDate(String date) {
186137
// Видалення зайвих пробілів
187138
date = date.trim();

0 commit comments

Comments
 (0)