master-customAdvancements #4

Merged
MineTec merged 3 commits from master-customAdvancements into master 2024-10-05 16:40:52 +00:00
3 changed files with 36 additions and 4 deletions
Showing only changes of commit 1aebae6cd5 - Show all commits

View File

@ -1,5 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.customAdvancements;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey;
@ -12,7 +13,11 @@ import java.util.Objects;
public class CustomAdvancements extends Appliance {
public void grantAdvancement(String advancementName, Player player) {
player.getAdvancementProgress(Objects.requireNonNull(Bukkit.getAdvancement(Objects.requireNonNull(NamespacedKey.fromString("custom_advancements:craftattack/" + advancementName))))).awardCriteria("criteria");
try {
player.getAdvancementProgress(Objects.requireNonNull(Bukkit.getAdvancement(Objects.requireNonNull(NamespacedKey.fromString("custom_advancements:craftattack/" + advancementName))))).awardCriteria("criteria");
} catch (Exception e) {
Main.logger().info("Custom Advancements Datapack not found!");
}
}
@Override

View File

@ -1,10 +1,14 @@
package eu.mhsl.craftattack.spawn.appliances.customAdvancements;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.inventory.CraftItemEvent;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.inventory.ItemStack;
public class CustomAdvancementsDamageEntityListener extends ApplianceListener<CustomAdvancements> {
@EventHandler
@ -16,4 +20,27 @@ public class CustomAdvancementsDamageEntityListener extends ApplianceListener<Cu
getAppliance().grantAdvancement("search_trouble", damager);
}
@EventHandler
public void onCraftItem(CraftItemEvent event) {
ItemStack result = event.getInventory().getResult();
if(result == null) return;
if(!(event.getView().getPlayer() instanceof Player player)) return;
if(result.getType() == Material.RED_SHULKER_BOX) {
getAppliance().grantAdvancement("fleischerchest", player);
} else if(
result.getItemMeta().itemName().equals(Component.text("98fdf0ae-c3ab-4ef7-ae25-efd518d600de"))
&& result.getItemMeta().getEnchantmentGlintOverride()
) {
getAppliance().grantAdvancement("craft_pixelblock", player);
}
}
@EventHandler
public void onChangeWorld(PlayerChangedWorldEvent event) {
if(!event.getPlayer().getWorld().getName().startsWith("plugins/PixelBlocks/worlds")) return;
getAppliance().grantAdvancement("use_pixelblock", event.getPlayer());
}
}

View File

@ -11,8 +11,8 @@ public class FleischerchestCraftItemListener extends ApplianceListener<Fleischer
public void onPrepareItemCraft(PrepareItemCraftEvent event) {
ItemStack result = event.getInventory().getResult();
if(result == null) return;
if(result.getType() == Material.RED_SHULKER_BOX) {
getAppliance().renameItem(event.getInventory().getResult());
}
if(result.getType() != Material.RED_SHULKER_BOX) return;
getAppliance().renameItem(event.getInventory().getResult());
}
}