Skip to content

Commit

Permalink
Initial support for vanish mod
Browse files Browse the repository at this point in the history
  • Loading branch information
Oliver-makes-code authored and Ampflower committed Mar 24, 2023
1 parent b98b629 commit 0aa1e20
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 3 deletions.
6 changes: 5 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ dependencies {
exclude(module = "opus-java")
})

modApi("maven.modrinth:vanish:1.3.2") {
isTransitive = false
}

include(modApi("me.sargunvohra.mcmods:autoconfig1u:3.3.1", excludeFabricApi))
include(implementation("com.konghq:unirest-java:3.13.10:standalone") {
exclude(group = "com.google.code.gson", module = "gson")
Expand Down Expand Up @@ -112,4 +116,4 @@ tasks {
rename { "${it}_${archivesBaseName}" }
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@
import br.com.brforgers.mods.disfabric.events.ServerChatCallback;
import br.com.brforgers.mods.disfabric.markdown.SpecialStringType;
import br.com.brforgers.mods.disfabric.utils.Utils;
import br.com.brforgers.mods.disfabric.utils.VanishService;
import kong.unirest.Unirest;
import kong.unirest.json.JSONObject;
import net.dv8tion.jda.api.utils.MarkdownSanitizer;
import net.fabricmc.fabric.api.event.Event;
import net.fabricmc.fabric.api.message.v1.ServerMessageDecoratorEvent;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;

Expand Down Expand Up @@ -69,16 +71,26 @@ public static void init() {
});

ServerPlayConnectionEvents.JOIN.register((handler, $2, $3) -> {
if (DisFabric.config.announcePlayers && !DisFabric.stop) {
if (DisFabric.config.announcePlayers && !DisFabric.stop && !VanishService.isPlayerVanished(handler.player)) {
DisFabric.bridgeChannel.sendMessage(DisFabric.config.texts.joinServer.replace("%playername%", MarkdownSanitizer.escape(Utils.playerName(handler.player)))).queue();
}
});

ServerPlayConnectionEvents.DISCONNECT.register((handler, $2) -> {
if (DisFabric.config.announcePlayers && !DisFabric.stop) {
if (DisFabric.config.announcePlayers && !DisFabric.stop && !VanishService.isPlayerVanished(handler.player)) {
DisFabric.bridgeChannel.sendMessage(DisFabric.config.texts.leftServer.replace("%playername%", MarkdownSanitizer.escape(Utils.playerName(handler.player)))).queue();
}
});
VanishService.listen();
}
}

/**
* @author Octal
*/
public static void onPlayerVanishChange(ServerPlayerEntity player, boolean vanish) {
if (DisFabric.config.announcePlayers && !DisFabric.stop) {
DisFabric.bridgeChannel.sendMessage((vanish ? DisFabric.config.texts.leftServer : DisFabric.config.texts.joinServer).replace("%playername%", MarkdownSanitizer.escape(Utils.playerName(player)))).queue();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package br.com.brforgers.mods.disfabric.utils;

import br.com.brforgers.mods.disfabric.listeners.MinecraftEventListener;
import me.drex.vanish.api.VanishAPI;
import me.drex.vanish.api.VanishEvents;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.server.network.ServerPlayerEntity;

/**
* @author Octal
*/
public class VanishService {
public static boolean isPlayerVanished(ServerPlayerEntity player) {
if (!FabricLoader.getInstance().isModLoaded("melius-vanish"))
return false;
return VanishAPI.isVanished(player);
}

public static void listen() {
if (FabricLoader.getInstance().isModLoaded("melius-vanish"))
VanishEvents.VANISH_EVENT.register(MinecraftEventListener::onPlayerVanishChange);
}
}

0 comments on commit 0aa1e20

Please sign in to comment.