Remove invui-resourcepack

This commit is contained in:
NichtStudioCode 2023-12-17 09:49:37 +01:00
parent 6db2edc1dc
commit 21b8babc31
17 changed files with 0 additions and 513 deletions

@ -1,7 +1,6 @@
package xyz.xenondevs.inventoryaccess.r10; package xyz.xenondevs.inventoryaccess.r10;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.network.protocol.game.ClientboundResourcePackPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.connection.send(packet);
}
} }

@ -1,7 +1,6 @@
package xyz.xenondevs.inventoryaccess.r11; package xyz.xenondevs.inventoryaccess.r11;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.network.protocol.game.ClientboundResourcePackPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.connection.send(packet);
}
} }

@ -1,7 +1,6 @@
package xyz.xenondevs.inventoryaccess.r12; package xyz.xenondevs.inventoryaccess.r12;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.network.protocol.game.ClientboundResourcePackPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.connection.send(packet);
}
} }

@ -1,7 +1,6 @@
package xyz.xenondevs.inventoryaccess.r13; package xyz.xenondevs.inventoryaccess.r13;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.network.protocol.game.ClientboundResourcePackPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.connection.send(packet);
}
} }

@ -1,7 +1,6 @@
package xyz.xenondevs.inventoryaccess.r14; package xyz.xenondevs.inventoryaccess.r14;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.network.protocol.game.ClientboundResourcePackPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.connection.send(packet);
}
} }

@ -1,7 +1,6 @@
package xyz.xenondevs.inventoryaccess.r15; package xyz.xenondevs.inventoryaccess.r15;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.network.protocol.game.ClientboundResourcePackPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.send(packet);
}
} }

@ -1,7 +1,6 @@
package xyz.xenondevs.inventoryaccess.r16; package xyz.xenondevs.inventoryaccess.r16;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.network.protocol.game.ClientboundResourcePackPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.send(packet);
}
} }

@ -1,6 +1,5 @@
package xyz.xenondevs.inventoryaccess.r17; package xyz.xenondevs.inventoryaccess.r17;
import net.minecraft.network.protocol.common.ClientboundResourcePackPacket;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.send(packet);
}
} }

@ -1,7 +1,6 @@
package xyz.xenondevs.inventoryaccess.r8; package xyz.xenondevs.inventoryaccess.r8;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.network.protocol.game.ClientboundResourcePackPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.connection.send(packet);
}
} }

@ -1,7 +1,6 @@
package xyz.xenondevs.inventoryaccess.r9; package xyz.xenondevs.inventoryaccess.r9;
import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket; import net.minecraft.network.protocol.game.ClientboundMapItemDataPacket;
import net.minecraft.network.protocol.game.ClientboundResourcePackPacket;
import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.PlayerAdvancements;
import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerAdvancementManager;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -14,10 +13,8 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils; import xyz.xenondevs.inventoryaccess.abstraction.util.PlayerUtils;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
import xyz.xenondevs.inventoryaccess.util.DataUtils;
import xyz.xenondevs.inventoryaccess.util.ReflectionUtils; import xyz.xenondevs.inventoryaccess.util.ReflectionUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -83,16 +80,4 @@ class PlayerUtilsImpl implements PlayerUtils {
); );
} }
@Override
public void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
var serverPlayer = ((CraftPlayer) player).getHandle();
var packet = new ClientboundResourcePackPacket(
url,
DataUtils.toHexadecimalString(hash),
force,
InventoryUtilsImpl.createNMSComponent(prompt)
);
serverPlayer.connection.connection.send(packet);
}
} }

@ -3,7 +3,6 @@ package xyz.xenondevs.inventoryaccess.abstraction.util;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.map.MapIcon; import xyz.xenondevs.inventoryaccess.map.MapIcon;
import xyz.xenondevs.inventoryaccess.map.MapPatch; import xyz.xenondevs.inventoryaccess.map.MapPatch;
@ -52,17 +51,4 @@ public interface PlayerUtils {
*/ */
void sendMapUpdate(@NotNull Player player, int mapId, byte scale, boolean locked, @Nullable MapPatch mapPatch, @Nullable List<MapIcon> icons); void sendMapUpdate(@NotNull Player player, int mapId, byte scale, boolean locked, @Nullable MapPatch mapPatch, @Nullable List<MapIcon> icons);
/**
* Sends a resource pack request to a {@link Player}
*
* @param player The {@link Player} to receive the resource pack request
* @param url The URL of the resource pack
* @param hash The SHA1 hash of the resource pack
* @param prompt The prompt message to be displayed (since 1.17)
* @param force If the {@link Player} should be forced to download the resource pack (since 1.17)
*/
default void sendResourcePack(@NotNull Player player, @NotNull String url, byte[] hash, @Nullable ComponentWrapper prompt, boolean force) {
player.setResourcePack(url, hash);
}
} }

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>invui-parent</artifactId>
<groupId>xyz.xenondevs.invui</groupId>
<version>1.23</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>invui-resourcepack</artifactId>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.19.3-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>xyz.xenondevs.invui</groupId>
<artifactId>invui-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>fr.xephi</groupId>
<artifactId>authme</artifactId>
<version>5.6.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

@ -1,223 +0,0 @@
package xyz.xenondevs.invui.resourcepack;
import net.md_5.bungee.api.chat.BaseComponent;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerResourcePackStatusEvent;
import org.bukkit.scheduler.BukkitTask;
import org.jetbrains.annotations.Nullable;
import xyz.xenondevs.inventoryaccess.InventoryAccess;
import xyz.xenondevs.inventoryaccess.component.BungeeComponentWrapper;
import xyz.xenondevs.inventoryaccess.component.ComponentWrapper;
import xyz.xenondevs.inventoryaccess.util.VersionUtils;
import xyz.xenondevs.invui.InvUI;
import xyz.xenondevs.invui.resourcepack.auth.AuthenticationServiceManager;
import xyz.xenondevs.invui.util.DataUtils;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import static org.bukkit.event.player.PlayerResourcePackStatusEvent.Status.DECLINED;
/**
* Forces {@link Player Players} to use a custom resource pack.
*/
public class ForceResourcePack implements Listener {
private static final ForceResourcePack INSTANCE = new ForceResourcePack();
private final HashMap<Player, BukkitTask> tasks = new HashMap<>();
private boolean forced = true;
private String forceBypassPermission;
private String promptBypassPermission;
private ComponentWrapper prompt;
private String resourcePackUrl;
private byte[] hash;
private ForceResourcePack() {
Bukkit.getPluginManager().registerEvents(this, InvUI.getInstance().getPlugin());
AuthenticationServiceManager.getInstance().setLoginHandler(player -> {
if (resourcePackUrl != null) sendResourcePack(player);
});
}
/**
* Gets the instance of this class.
*
* @return The instance of this class.
*/
public static ForceResourcePack getInstance() {
return INSTANCE;
}
/**
* Gets the configured resource pack URL.
*
* @return The resource pack URL or null if no resource pack is configured.
*/
public @Nullable String getResourcePackUrl() {
return resourcePackUrl;
}
/**
* Sets the URL String for the custom ResourcePack every {@link Player} is required to download.
* Can be set to null to stop forcing the Resource Pack.
*
* @param resourcePackUrl The ResourcePack URL String
* @throws IOException If the connection was not successful
*/
public void setResourcePack(@Nullable String resourcePackUrl) throws IOException {
setResourcePack(resourcePackUrl, true);
}
/**
* Sets the URL String for the custom ResourcePack every {@link Player} is required to download.
* Can be set to null to stop forcing the Resource Pack.
*
* @param resourcePackUrl The ResourcePack URL String
* @param sendToOnlinePlayers If the resource pack should also be sent to all currently online players
* @throws IOException If the connection was not successful
*/
public void setResourcePack(@Nullable String resourcePackUrl, boolean sendToOnlinePlayers) throws IOException {
if (resourcePackUrl != null) {
URL url = new URL(resourcePackUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int response = connection.getResponseCode();
if (response >= 200 && response < 300) {
hash = DataUtils.createSha1Hash(url.openStream());
this.resourcePackUrl = resourcePackUrl;
} else throw new IOException("Service returned response code " + response);
if (sendToOnlinePlayers) Bukkit.getOnlinePlayers().forEach(this::sendResourcePack);
} else {
this.resourcePackUrl = null;
}
}
/**
* Gets the resource pack prompt message. (Since 1.17)
*
* @return The resource pack prompt message.
*/
public ComponentWrapper getPrompt() {
return prompt;
}
/**
* Sets the resource pack prompt message. (Since 1.17)
*
* @param prompt The resource pack prompt message.
*/
public void setPrompt(ComponentWrapper prompt) {
this.prompt = prompt;
}
/**
* Sets the resource pack prompt message. (Since 1.17)
*
* @param prompt The resource pack prompt message.
*/
public void setPrompt(BaseComponent[] prompt) {
this.prompt = new BungeeComponentWrapper(prompt);
}
/**
* Gets whether {@link Player Players} are be forced to download the resource pack.
*
* @return Whether the resource pack is forced.
*/
public boolean isForced() {
return forced;
}
/**
* Sets whether {@link Player Players} should be forced to download the resource pack.
*
* @param forced Whether the resource pack should be forced.
*/
public void setForced(boolean forced) {
this.forced = forced;
}
/**
* Gets the bypass permission a {@link Player} needs to have to not be forced to download the ResourcePack.
* <p>
* {@link Player Players} with this permission will still get the resource pack prompt, but they can choose to not
* download the resource pack.
*
* @return The bypass permission
*/
public String getForceBypassPermission() {
return forceBypassPermission;
}
/**
* Sets the bypass permission a {@link Player} needs to have to not be forced to download the ResourcePack.
* <p>
* {@link Player Players} with this permission will still get the resource pack prompt, but they can choose to not
* download the resource pack.
*
* @param forceBypassPermission The bypass permission
*/
public void setForceBypassPermission(String forceBypassPermission) {
this.forceBypassPermission = forceBypassPermission;
}
/**
* Gets the bypass permission which exempts {@link Player Players} from receiving the resource pack prompt.
*
* @return The bypass permission.
*/
public String getPromptBypassPermission() {
return promptBypassPermission;
}
/**
* Sets the bypass permission which exempts {@link Player Players} from receiving the resource pack prompt.
*
* @param promptBypassPermission The bypass permission.
*/
public void setPromptBypassPermission(String promptBypassPermission) {
this.promptBypassPermission = promptBypassPermission;
}
public void sendResourcePack(Player player) {
// player is exempted from the resource pack prompt
if (promptBypassPermission != null && player.hasPermission(promptBypassPermission))
return;
boolean forced = this.forced && (forceBypassPermission == null || !player.hasPermission(forceBypassPermission));
if (VersionUtils.isServerHigherOrEqual("1.17.0")) {
InventoryAccess.getPlayerUtils().sendResourcePack(player, resourcePackUrl, hash, prompt, forced);
} else {
player.setResourcePack(resourcePackUrl);
if (forced) {
tasks.put(player, Bukkit.getScheduler().runTaskLater(InvUI.getInstance().getPlugin(),
() -> kickPlayer(player), 20 * 5));
}
}
}
@EventHandler
private void handleResourcePackStatus(PlayerResourcePackStatusEvent event) {
if (resourcePackUrl != null) {
Player player = event.getPlayer();
if (tasks.containsKey(player)) {
if (event.getStatus() == DECLINED) kickPlayer(player);
else tasks.get(player).cancel();
tasks.remove(player);
}
}
}
private void kickPlayer(Player player) {
player.kickPlayer("§cPlease accept the custom resource pack");
}
}

@ -1,12 +0,0 @@
package xyz.xenondevs.invui.resourcepack.auth;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
public abstract class AuthenticationService implements Listener {
public void handleAuthentication(Player player) {
AuthenticationServiceManager.getInstance().getLoginHandler().accept(player);
}
}

@ -1,60 +0,0 @@
package xyz.xenondevs.invui.resourcepack.auth;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import xyz.xenondevs.invui.InvUI;
import xyz.xenondevs.invui.resourcepack.auth.impl.AuthMe;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.function.Consumer;
public class AuthenticationServiceManager implements Listener {
private static final AuthenticationServiceManager INSTANCE = new AuthenticationServiceManager();
private final ArrayList<AuthenticationService> services = new ArrayList<>();
private Consumer<Player> loginHandler;
private AuthenticationServiceManager() {
registerAuthenticationService("AuthMe", AuthMe.class);
if (services.isEmpty()) {
Bukkit.getPluginManager().registerEvents(this, InvUI.getInstance().getPlugin());
}
}
public static AuthenticationServiceManager getInstance() {
return INSTANCE;
}
private void registerAuthenticationService(String pluginName, Class<? extends AuthenticationService> serviceClass) {
try {
if (Bukkit.getPluginManager().isPluginEnabled(pluginName)) {
Constructor<? extends AuthenticationService> con = serviceClass.getConstructor();
AuthenticationService service = con.newInstance();
Bukkit.getPluginManager().registerEvents(service, InvUI.getInstance().getPlugin());
services.add(service);
}
} catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
}
@EventHandler
private void handleJoin(PlayerJoinEvent event) {
loginHandler.accept(event.getPlayer());
}
public void setLoginHandler(Consumer<Player> loginHandler) {
this.loginHandler = loginHandler;
}
public Consumer<Player> getLoginHandler() {
return loginHandler;
}
}

@ -1,14 +0,0 @@
package xyz.xenondevs.invui.resourcepack.auth.impl;
import fr.xephi.authme.events.LoginEvent;
import org.bukkit.event.EventHandler;
import xyz.xenondevs.invui.resourcepack.auth.AuthenticationService;
public class AuthMe extends AuthenticationService {
@EventHandler
private void handleLoginEvent(LoginEvent event) {
handleAuthentication(event.getPlayer());
}
}

@ -75,7 +75,6 @@
<module>inventoryaccess/inventory-access-r16</module> <module>inventoryaccess/inventory-access-r16</module>
<module>inventoryaccess/inventory-access-r17</module> <module>inventoryaccess/inventory-access-r17</module>
<module>invui-core</module> <module>invui-core</module>
<module>invui-resourcepack</module>
<module>invui-kotlin</module> <module>invui-kotlin</module>
<module>invui</module> <module>invui</module>
</modules> </modules>