Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .idea/artifacts/OpenDiscordAuth.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion .idea/libraries/libs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion OpenDiscordAuth.iml
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,6 @@
<orderEntry type="library" name="libs" level="project" />
<orderEntry type="library" name="spigot-1.17.1" level="project" />
<orderEntry type="library" name="JDA-5.0.0-beta.13-withDependencies" level="project" />
<orderEntry type="library" name="adventure-key-4.14.0" level="project" />
</component>
</module>
</module>
Binary file added libs/adventure-key-4.14.0.jar
Binary file not shown.
Binary file added libs/adventure-text-serializer-plain-4.14.0.jar
Binary file not shown.
6 changes: 5 additions & 1 deletion resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ discordChatIdForTranslation: "ENTER CHAT ID HERE"
discordChatIdForLogs: "ENTER CHAT ID HERE"
chatPrefix: "ENTER CHAT PREFIX HERE"
enablePluginAutoUpdate: true
enableSystemMessagesRetranslate: true

domainProviderInfo:
token: "ENTER DOMAIN PROVIDER TOKEN HERE"
Expand Down Expand Up @@ -40,6 +41,9 @@ message:
CommandMissingPermissions: "У вас недостаточно прав"
CommandSuccess: "Команда исполнена"
CommandError: "Ошибка"
GlobalMessageFormat: '&7[&bG&7] [&3%prefix&7] &%color%displayname &9> &7%message'
GlobalMessageFormat: "&7[&bG&7] [&3%prefix&7] &%color%displayname &9> &7%message"
PlayerJoined: "$discordname joined the world"
PlayerLeft: "$discordname left the world"
PlayerAchievementReceive: "$discordname done advancement $achievementname ($achievementdescription)"

opIdsList: ["256114365894230018", "500020124515041283"]
2 changes: 1 addition & 1 deletion resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: OpenDiscordAuth
main: ru.fazziclay.opendiscordauth.Main
version: 1.8.8
version: 1.8.9
website: "https://github.com/BVN4/OpenDiscordAuth/"
authors: ["https://github.com/BVN4", "https://github.com/fazziclay/", "https://github.com/TheKing-OfTime"]
load: STARTUP
Expand Down
4 changes: 4 additions & 0 deletions src/ru/fazziclay/opendiscordauth/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ public class Config {

public static String discordBotToken = Main.pluginConfig.getString("discordBotToken");
public static boolean enablePluginAutoUpdate = Main.pluginConfig.getBoolean("enablePluginAutoUpdate");
public static boolean enableSystemMessagesRetranslate = Main.pluginConfig.getBoolean("enableSystemMessagesRetranslate");
public static String accountsFilePath = Main.pluginConfig.getString("accountsFilePath");
public static int sessionExpiredDelay = Main.pluginConfig.getInt("sessionExpiredDelay");

Expand Down Expand Up @@ -37,6 +38,9 @@ public class Config {
public static String messageCommandMissingPermissions = Main.pluginConfig.getString("message.CommandMissingPermissions");
public static String messageCommandSuccess = Main.pluginConfig.getString("message.CommandSuccess");
public static String messageCommandError = Main.pluginConfig.getString("message.CommandError");
public static String messagePlayerJoined = Main.pluginConfig.getString("message.PlayerJoined");
public static String messagePlayerLeft = Main.pluginConfig.getString("message.PlayerLeft");
public static String messagePlayerAchievementReceive = Main.pluginConfig.getString("message.PlayerAchievementReceive");
public static String globalMessageFormat = Main.pluginConfig.getString("message.GlobalMessageFormat");
public static String domainProviderToken = Main.pluginConfig.getString("domainProviderInfo.token");
public static String domainProviderDomainName = Main.pluginConfig.getString("domainProviderInfo.domainName");
Expand Down
47 changes: 43 additions & 4 deletions src/ru/fazziclay/opendiscordauth/ServerEvents.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
package ru.fazziclay.opendiscordauth;

import org.bukkit.Bukkit;
import net.kyori.adventure.text.TranslatableComponent;
import org.bukkit.GameMode;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.Event;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.*;
import de.jeter.chatex.api.events.PlayerUsesGlobalChatEvent;
import ru.fazziclay.opendiscordauth.discordbot.DiscordBot;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;

import java.util.Objects;

Expand All @@ -28,7 +29,7 @@ public void onLogin(PlayerLoginEvent event) {
}

@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
public void onPlayerJoin(PlayerJoinEvent event) throws InterruptedException {
Utils.debug("[ServerEvents] onPlayerJoin(-)");

Player player = event.getPlayer();
Expand All @@ -55,16 +56,21 @@ public void onPlayerJoin(PlayerJoinEvent event) {

player.setGameMode(GameMode.SPECTATOR);
LoginManager.giveCode(uuid, nickname, player);
if (Config.enableSystemMessagesRetranslate) {
String displayName = event.getPlayer().getDisplayName().replaceAll("§.", "");
DiscordBot.webhook.sendMessage(Config.messagePlayerJoined.replace("$discordname", displayName));
}
DiscordBot.updateOnlineStatus(player, true);
}

@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
public void onPlayerQuit(PlayerQuitEvent event) throws InterruptedException {
Utils.debug("[ServerEvents] onPlayerQuit(-)");

Player player = event.getPlayer();
String uuid = player.getUniqueId().toString();
String nickname = player.getName();

String ip = Utils.getPlayerIp(player);

TempCode tempCode = TempCode.getByValue(2, nickname);
Expand All @@ -77,6 +83,10 @@ public void onPlayerQuit(PlayerQuitEvent event) {
Session.update(nickname, ip);
}
LoginManager.notAuthorizedPlayers.remove(uuid);
if (Config.enableSystemMessagesRetranslate) {
String displayName = event.getPlayer().getDisplayName().replaceAll("§.", "");
DiscordBot.webhook.sendMessage(Config.messagePlayerLeft.replace("$discordname", displayName));
}
DiscordBot.updateOnlineStatus(player, false);
}

Expand Down Expand Up @@ -156,4 +166,33 @@ public void onDamage(EntityDamageEvent event) {
if (!isAuthorized) event.setCancelled(true);
}
}

@EventHandler
public void onPlayerAdvancementDoneEvent(PlayerAdvancementDoneEvent event) throws InterruptedException {
if (Config.enableSystemMessagesRetranslate) {
io.papermc.paper.advancement.AdvancementDisplay advancementInfo = event.getAdvancement().getDisplay();
if (Objects.isNull(advancementInfo)) return;
if (advancementInfo.doesAnnounceToChat()) {
String title = PlainTextComponentSerializer.plainText().serialize(advancementInfo.title());
String description = PlainTextComponentSerializer.plainText().serialize(advancementInfo.description());
String displayName = event.getPlayer().getDisplayName().replaceAll("§.", "");

DiscordBot.webhook.sendMessage(
Config.messagePlayerAchievementReceive
.replace("$discordname", displayName)
.replace("$achievementname", title)
.replace("$achievementdescription", description)
);
}
}
}

@EventHandler
public void onPlayerDeathEvent(PlayerDeathEvent event) throws InterruptedException {
if (Config.enableSystemMessagesRetranslate) {
String deathMessage = PlainTextComponentSerializer.plainText().serialize(event.deathMessage());
String displayName = event.getPlayer().getDisplayName().replaceAll("§.", "");
DiscordBot.webhook.sendMessage(deathMessage.replace(event.getPlayer().getName(), displayName));
}
}
}
2 changes: 2 additions & 0 deletions src/ru/fazziclay/opendiscordauth/UpdateChecker.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public class UpdateChecker {
public static Version lastVersion;
public static String lastVersionDownloadURL = "null";
public static String lastVersionDownloadPageURL = "null";
public static String lastVersionPathNotes = "null";
public static float lastVersionSize = 0;
public static boolean isLastVersionRelease = false;
public static boolean isAwaitingForRestart = false;
Expand Down Expand Up @@ -61,6 +62,7 @@ public static boolean checkUpdates() {
lastVersion = Version.parse(release.getString("name"));
isLastVersionRelease = !release.getBoolean("prerelease");
lastVersionDownloadPageURL = release.getString("html_url");
lastVersionPathNotes = release.getString("body");
lastVersionDownloadURL = release.getJSONArray("assets")
.getJSONObject(0)
.getString("browser_download_url");
Expand Down
8 changes: 4 additions & 4 deletions src/ru/fazziclay/opendiscordauth/WebhookClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import net.dv8tion.jda.api.entities.Webhook;
import org.bukkit.Bukkit;
import org.json.JSONObject;
import ru.fazziclay.opendiscordauth.discordbot.DiscordBot;

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
Expand Down Expand Up @@ -31,17 +32,16 @@ public void sendMessage(String message, String name, String avatar_url) throws I
.header("content-type", "application/json")
.header("Authorization", Config.discordBotToken)
.build();
//Bukkit.getLogger().info(request.toString());
//Bukkit.getLogger().info(body);
HttpResponse<String> response = null;
try {
response = httpclient.send(request, HttpResponse.BodyHandlers.ofString());
//Bukkit.getLogger().info(response.statusCode() + " " + response.body());
} catch (IOException e) {
Bukkit.getLogger().info(e.getMessage());
}
}


public void sendMessage(String message) throws InterruptedException {
this.sendMessage(message, "[$prefix] System".replace("$prefix", Config.chatPrefix), DiscordBot.bot.getSelfUser().getAvatarUrl());
}

private String getRequestBody(String message, String name, String avatar_url) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package ru.fazziclay.opendiscordauth.checkupdates;

import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import net.dv8tion.jda.api.interactions.components.buttons.Button;

import org.jetbrains.annotations.NotNull;
import ru.fazziclay.opendiscordauth.UpdateChecker;
import ru.fazziclay.opendiscordauth.Utils;
import ru.fazziclay.opendiscordauth.discordbot.Controller;

import java.math.BigDecimal;
Expand All @@ -25,7 +27,12 @@ public void eventHandle(@NotNull SlashCommandInteractionEvent event) {

event.getHook().editOriginal("⌛ Поиск обновлений...").queue();
if (!UpdateChecker.checkUpdates()) {
event.getHook().editOriginal("✅ Обновления не найдены").queue();
event.getHook().editOriginal(String.format("✅ Обновления не найдены\nТекущая версия: `%s`", UpdateChecker.thisVersion))
.setActionRow(
Button.secondary("showPatchNotes", "Что нового?"),
Button.link(UpdateChecker.lastVersionDownloadPageURL, "Страница релиза")
)
.queue();
return;
}

Expand All @@ -43,7 +50,20 @@ public void eventHandle(@NotNull SlashCommandInteractionEvent event) {
status
? "✅ Обновление загружено\nℹ Перезапустите сервер для применения обновлений"
: "⛔ Не удалось загрузить обновление";
event.getHook().editOriginal(substring + downloadStatusString)
.setActionRow(
status ? Button.secondary("showPatchNotes", "Что нового?") : null,
status ? Button.link(UpdateChecker.lastVersionDownloadPageURL, "Страница релиза") : null
)
.queue();
}

event.getHook().editOriginal(substring + downloadStatusString).queue();
public void eventHandle(@NotNull ButtonInteractionEvent event) {
String cid = event.getComponentId();
if ("showPatchNotes".equals(cid)) {
event.reply(UpdateChecker.lastVersionPathNotes)
.setEphemeral(true)
.queue();
}
}
}
9 changes: 9 additions & 0 deletions src/ru/fazziclay/opendiscordauth/discordbot/DiscordBot.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.events.session.ReadyEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
Expand Down Expand Up @@ -113,6 +114,14 @@ public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent even
}
}

@Override
public void onButtonInteraction(@NotNull ButtonInteractionEvent event) {

switch (event.getComponentId()) {
case ("showPatchNotes") -> check_updates.eventHandle(event);
}
}

@Override
public void onReady(@NotNull ReadyEvent event) {
Bukkit.getLogger().info(DiscordBot.bot.getSelfUser().getAsTag());
Expand Down