Сделал много изменений, сами все посмотрите.

This commit is contained in:
neroduckale 2024-04-08 00:20:44 +05:00
parent c6f609b3a0
commit 11dc48831a
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 399E73062E1A3667
3 changed files with 87 additions and 25 deletions

View file

@ -13,6 +13,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import static ru.neroduckale.nerodays.nerodays.LOGGER;
/** /**
* Class used to execute Discord Webhooks with low effort * Class used to execute Discord Webhooks with low effort
*/ */

View file

@ -1,7 +1,5 @@
package ru.neroduckale.nerodays; package ru.neroduckale.nerodays;
import com.google.gson.JsonObject;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
@ -9,6 +7,7 @@ import net.minecraftforge.event.ServerChatEvent;
import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.TickEvent;
import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.event.entity.player.AdvancementEvent; import net.minecraftforge.event.entity.player.AdvancementEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import java.awt.*; import java.awt.*;
@ -39,35 +38,44 @@ public class Events {
@SubscribeEvent @SubscribeEvent
public void NewDay(TickEvent.LevelTickEvent worldTickEvent) throws IOException { public void NewDay(TickEvent.LevelTickEvent worldTickEvent) {
if (worldTickEvent.level.getDayTime() % 24000 == 0) { if (worldTickEvent.level.getDayTime() % 24000 == 0) {
var a = worldTickEvent.level.getDayTime() / 24000; var a = worldTickEvent.level.getDayTime() / 24000;
if (days != a) { if (days != a) {
days = (int) a; days = (int) a;
} else {return;} } else {return;}
var m = "Новый день! День: " + a; var m = "Новый день! День: " + a;
LOGGER.error(m); DiscordWebhook.EmbedObject embed = new DiscordWebhook.EmbedObject()
serverwebhook.setContent(m); .setTitle(m)
.setColor(Color.white);
serverwebhook.addEmbed(embed);
try {
serverwebhook.execute(); serverwebhook.execute();
serverwebhook.setContent(""); } catch (IOException exception) {
LOGGER.error(exception.getMessage());
}
} }
} }
@SubscribeEvent @SubscribeEvent
public void NewMsg(ServerChatEvent event) throws IOException { public void NewMsg(ServerChatEvent event) {
var nickname = event.getUsername(); var nickname = event.getUsername();
var message = event.getMessage().getString(); var message = event.getMessage().getString();
webhook.setUsername(nickname); webhook.setUsername(nickname);
webhook.setContent(message); webhook.setContent(message);
webhook.setAvatarUrl("https://ely.by/services/skins-renderer?url=http://skinsystem.ely.by/skins/%s&scale=10&renderFace=1".formatted(nickname)); webhook.setAvatarUrl("https://ely.by/services/skins-renderer?url=http://skinsystem.ely.by/skins/%s&scale=10&renderFace=1".formatted(nickname));
try {
webhook.execute(); webhook.execute();
} catch (IOException exception) {
LOGGER.error(exception.getMessage());
}
} }
@SubscribeEvent @SubscribeEvent
public void Death(LivingDeathEvent event) throws IOException { public void Death(LivingDeathEvent event) {
if (event.getEntity() instanceof ServerPlayer player) { if (event.getEntity() instanceof ServerPlayer player) {
var nickname = player.getDisplayName().getString(); var nickname = player.getDisplayName().getString();
@ -79,25 +87,79 @@ public class Events {
.setTitle(chlen) .setTitle(chlen)
.setColor(Color.red); .setColor(Color.red);
serverwebhook.addEmbed(embed); serverwebhook.addEmbed(embed);
try {
serverwebhook.execute(); serverwebhook.execute();
} catch (IOException exception) {
LOGGER.error(exception.getMessage());
}
} }
} }
@SubscribeEvent @SubscribeEvent
public void onNewAchivment(AdvancementEvent.AdvancementEarnEvent event) throws IOException { public void onNewAchievement(AdvancementEvent.AdvancementEarnEvent event) {
if (event.getAdvancement().getDisplay() == null) return;
String id = event.getAdvancement().getId().getPath().replace("/", ".");
String description;
String title;
if (json.get("advancements.%s.description".formatted(id)).getAsString() == null) {
description = event.getAdvancement().getDisplay().getDescription().getString();
} else {
description = json.get("advancements.%s.description".formatted(id)).getAsString();
}
if (json.get("advancements.%s.title".formatted(id)).getAsString() == null) {
title = event.getAdvancement().getDisplay().getTitle().getString();
} else {
title = json.get("advancements.%s.title".formatted(id)).getAsString();
}
var nickname = event.getEntity().getDisplayName().getString(); var nickname = event.getEntity().getDisplayName().getString();
var achivka = event.getAdvancement().toString();
var message = nickname + " получил ачивку!"; var message = nickname + " получил ачивку!";
DiscordWebhook.EmbedObject embed = new DiscordWebhook.EmbedObject() DiscordWebhook.EmbedObject embed = new DiscordWebhook.EmbedObject()
.setAuthor(message, "", "https://ely.by/services/skins-renderer?url=http://skinsystem.ely.by/skins/%s&scale=10&renderFace=1".formatted(nickname)) .setAuthor(message, "", "https://ely.by/services/skins-renderer?url=http://skinsystem.ely.by/skins/%s&scale=10&renderFace=1".formatted(nickname))
.setTitle(achivka) .setTitle(title)
.setDescription(description)
.setColor(Color.green);
serverwebhook.addEmbed(embed);
try {
serverwebhook.execute();
} catch (IOException exception) {
LOGGER.error(exception.getMessage());
}
}
@SubscribeEvent
public void playerJoin(PlayerEvent.PlayerLoggedInEvent event) {
var nickname = event.getEntity().getDisplayName().getString();
String message = nickname + " зашел на сервер!";
DiscordWebhook.EmbedObject embed = new DiscordWebhook.EmbedObject()
.setAuthor(message, "", "https://ely.by/services/skins-renderer?url=http://skinsystem.ely.by/skins/%s&scale=10&renderFace=1".formatted(nickname))
.setColor(Color.green);
serverwebhook.addEmbed(embed);
try {
serverwebhook.execute();
} catch (IOException exception) {
LOGGER.error(exception.getMessage());
}
}
@SubscribeEvent
public void playerLeave(PlayerEvent.PlayerLoggedOutEvent event) {
var nickname = event.getEntity().getDisplayName().getString();
String message = nickname + " вышел с сервера.";
DiscordWebhook.EmbedObject embed = new DiscordWebhook.EmbedObject()
.setAuthor(message, "", "https://ely.by/services/skins-renderer?url=http://skinsystem.ely.by/skins/%s&scale=10&renderFace=1".formatted(nickname))
.setColor(Color.red); .setColor(Color.red);
serverwebhook.addEmbed(embed); serverwebhook.addEmbed(embed);
serverwebhook.execute(); //НЕ ПРОВЕРЯЛ try {
} serverwebhook.execute();
} catch (IOException exception) {
LOGGER.error(exception.getMessage());
}
}
} }

View file

@ -1,23 +1,21 @@
package ru.neroduckale.nerodays; package ru.neroduckale.nerodays;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import com.mojang.logging.LogUtils; import com.mojang.logging.LogUtils;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.server.ServerStartingEvent;
import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.server.ServerStartingEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import java.awt.*;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets;
@Mod(nerodays.MODID) @Mod(nerodays.MODID)
@ -31,21 +29,21 @@ public class nerodays
public static JsonObject json; public static JsonObject json;
public nerodays() throws UnsupportedEncodingException { public nerodays() throws IOException {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(new Events()); MinecraftForge.EVENT_BUS.register(new Events());
var readIn = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("assets/nerodays/ru_ru.json"), "UTF-8")); var readIn = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("assets/nerodays/ru_ru.json"), StandardCharsets.UTF_8));
json = JsonParser.parseReader(readIn).getAsJsonObject(); json = JsonParser.parseReader(readIn).getAsJsonObject();
} }
@SubscribeEvent @SubscribeEvent
public void onServerStarting(ServerStartingEvent event) throws IOException { public void onServerStarting(ServerStartingEvent event) throws IOException {
serverwebhook.setContent("Сервер запущен!"); serverwebhook.addEmbed(new DiscordWebhook.EmbedObject().setTitle("Сервер включен!").setColor(Color.white));
serverwebhook.execute(); serverwebhook.execute();
serverwebhook.setContent("");
} }