Skip to content
72 changes: 25 additions & 47 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,35 +1,51 @@
import net.minecrell.pluginyml.bukkit.BukkitPluginDescription

plugins {
id("java")
id("maven-publish")
id("io.papermc.paperweight.userdev") version "1.7.7"
id("net.minecrell.plugin-yml.bukkit") version "0.6.0"
id("io.papermc.paperweight.userdev") version "2.0.0-beta.21"
}

group = "eu.endercentral.crazy_advancements"
version = "2.1.21"
version = "2.26.12"

repositories {
mavenCentral()
maven {
name = "papermc"
url = uri("https://repo.papermc.io/repository/maven-public/")
}
}

sourceSets {
main {
java {
srcDir("src/")
}
resources {
srcDir("resources/")
}
}
}

dependencies {
paperweight.paperDevBundle("1.21.4-R0.1-SNAPSHOT")
paperweight.paperDevBundle("26.1.2.build.9-alpha")
}

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
toolchain.languageVersion.set(JavaLanguageVersion.of(25))
}

tasks {
compileJava {
options.encoding = Charsets.UTF_8.name()
options.release.set(21)
options.release.set(25)
dependsOn(clean)
}

jar.get().archiveFileName = "${name}-${version}-mojmap.jar"
jar {
//from(zipTree("libs/jedis-4.3.1.zip"))
destinationDirectory.set(layout.buildDirectory)
archiveFileName = "${project.name}-${version}.jar"
}
}

publishing {
Expand All @@ -39,42 +55,4 @@ publishing {
artifact(tasks.jar).classifier = "mojmap"
}
}
}

bukkit {
main = "eu.endercentral.crazy_advancements.CrazyAdvancementsAPI"
author = "ZockerAxel"
apiVersion = "1.20.5" // Should be always same as dev bundle version
load = BukkitPluginDescription.PluginLoadOrder.STARTUP

commands {
register("grant") {
usage = "/grant <Player> <Manager> <Advancement> [Criteria...]"
description = "Grants <Advancement>-[Criteria...] to <Player> in <Manager>"
aliases = listOf("cagrant")
}

register("revoke") {
usage = "/revoke <Player> <Manager> <Advancement> [Criteria...]"
description = "Revokes <Advancement>-[Criteria...] to <Player> in <Manager>"
aliases = listOf("carevoke")
}

register("setprogress") {
usage = "/setprogress <Player> <Manager> <Advancement> <Number> [Operation]"
description = "Sets <Advancement> Progress for <Player> in <Manager> using [Operation]"
aliases = listOf("caprogress")
}

register("showtoast") {
usage = "/showtoast <Player> <Icon> [Frame] <Message>"
description = "Displays a Toast Advancement Message"
aliases = listOf("catoast", "toast")
}

register("careload") {
usage = "/careload [Category]"
description = "Reloads the Crazy Advancements API. Valid categories are all, advancements, items"
}
}
}
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
32 changes: 32 additions & 0 deletions resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: CrazyAdvancementsAPI
version: 2.21.11
main: eu.endercentral.crazy_advancements.CrazyAdvancementsAPI
load: STARTUP
author: ZockerAxel,Romindous
commands:
careload:
description: "Reloads the Crazy Advancements API. Valid categories are all, advancements,\
\ items"
usage: "/careload [Category]"
grant:
description: "Grants <Advancement>-[Criteria...] to <Player> in <Manager>"
aliases:
- cagrant
usage: "/grant <Player> <Manager> <Advancement> [Criteria...]"
revoke:
description: "Revokes <Advancement>-[Criteria...] to <Player> in <Manager>"
aliases:
- carevoke
usage: "/revoke <Player> <Manager> <Advancement> [Criteria...]"
setprogress:
description: "Sets <Advancement> Progress for <Player> in <Manager> using [Operation]"
aliases:
- caprogress
usage: "/setprogress <Player> <Manager> <Advancement> <Number> [Operation]"
showtoast:
description: "Displays a Toast Advancement Message"
aliases:
- catoast
- toast
usage: "/showtoast <Player> <Icon> [Frame] <Message>"
api-version: 1.21.11
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,20 @@

public class AdvancementPacketReceiver {

private static HashMap<String, ChannelHandler> handlers = new HashMap<>();
private static final HashMap<String, ChannelHandler> handlers = new HashMap<>();
private static Field channelField;
private static Field networkManagerField;

{
for(Field f : Connection.class.getDeclaredFields()) {
static {
for (Field f : Connection.class.getDeclaredFields()) {
if(f.getType().isAssignableFrom(Channel.class)) {
channelField = f;
channelField.setAccessible(true);
break;
}
}

for(Field f : ServerCommonPacketListenerImpl.class.getDeclaredFields()) {
for (Field f : ServerCommonPacketListenerImpl.class.getDeclaredFields()) {
if(f.getType().isAssignableFrom(Connection.class)) {
networkManagerField = f;
networkManagerField.setAccessible(true);
Expand All @@ -45,8 +45,8 @@ public class AdvancementPacketReceiver {
}
}

interface PacketReceivingHandler {
public boolean handle(Player p, ServerboundSeenAdvancementsPacket packet);
public interface PacketReceivingHandler {
boolean handle(Player p, ServerboundSeenAdvancementsPacket packet);
}

public ChannelHandler listen(final Player p, final PacketReceivingHandler handler) {
Expand All @@ -55,7 +55,7 @@ public ChannelHandler listen(final Player p, final PacketReceivingHandler handle

ChannelHandler handle = new MessageToMessageDecoder<Packet<?>>() {
@Override
protected void decode(ChannelHandlerContext chc, Packet<?> packet, List<Object> out) throws Exception {
protected void decode(ChannelHandlerContext chc, Packet<?> packet, List<Object> out) {

if(packet instanceof ServerboundSeenAdvancementsPacket) {
if(!handler.handle(p, (ServerboundSeenAdvancementsPacket) packet)) {
Expand Down Expand Up @@ -110,35 +110,31 @@ public HashMap<String, ChannelHandler> getHandlers() {
}

public void initPlayer(Player p) {
handlers.put(p.getName(), listen(p, new PacketReceivingHandler() {

@Override
public boolean handle(Player p, ServerboundSeenAdvancementsPacket packet) {

if(packet.getAction() == ServerboundSeenAdvancementsPacket.Action.OPENED_TAB) {
NameKey name = new NameKey(packet.getTab());
AdvancementTabChangeEvent event = new AdvancementTabChangeEvent(p, name);
Bukkit.getPluginManager().callEvent(event);

if(event.isCancelled()) {
CrazyAdvancementsAPI.clearActiveTab(p);
return false;
} else {
if(!event.getTabAdvancement().equals(name)) {
CrazyAdvancementsAPI.setActiveTab(p, event.getTabAdvancement());
} else {
CrazyAdvancementsAPI.setActiveTab(p, name, false);
}
}
} else {
AdvancementScreenCloseEvent event = new AdvancementScreenCloseEvent(p);
Bukkit.getPluginManager().callEvent(event);
}


return true;
}
}));
handlers.put(p.getName(), listen(p, (p1, packet) -> {

if(packet.getAction() == ServerboundSeenAdvancementsPacket.Action.OPENED_TAB) {
NameKey name = new NameKey(packet.getTab());
AdvancementTabChangeEvent event = new AdvancementTabChangeEvent(p1, name);
Bukkit.getPluginManager().callEvent(event);

if(event.isCancelled()) {
CrazyAdvancementsAPI.clearActiveTab(p1);
return false;
} else {
if(!event.getTabAdvancement().equals(name)) {
CrazyAdvancementsAPI.setActiveTab(p1, event.getTabAdvancement());
} else {
CrazyAdvancementsAPI.setActiveTab(p1, name, false);
}
}
} else {
AdvancementScreenCloseEvent event = new AdvancementScreenCloseEvent(p1);
Bukkit.getPluginManager().callEvent(event);
}


return true;
}));
}

}
Loading