Skip to content

Commit

Permalink
Update to 1.21.1
Browse files Browse the repository at this point in the history
  • Loading branch information
acrylic-style committed Nov 4, 2024
1 parent ec3f83c commit 761a570
Show file tree
Hide file tree
Showing 16 changed files with 101 additions and 70 deletions.
18 changes: 9 additions & 9 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@ import org.apache.tools.ant.filters.ReplaceTokens
plugins {
kotlin("jvm") version "1.9.22"
kotlin("plugin.serialization") version "1.9.22"
id("io.github.goooler.shadow") version "8.1.8"
id("com.gradleup.shadow") version "8.3.3"
id("io.papermc.paperweight.userdev") version "1.7.1"
java
`maven-publish`
}

group = "net.azisaba"
version = "1.20.2+6.17.2"
version = "1.21.1+6.17.2"

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
toolchain.languageVersion.set(JavaLanguageVersion.of(21))

withJavadocJar()
withSourcesJar()
Expand Down Expand Up @@ -60,9 +60,9 @@ dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")
implementation("com.charleskorn.kaml:kaml:0.57.0")
//noinspection GradlePackageUpdate
implementation("com.zaxxer:HikariCP:4.0.3")
implementation("org.mariadb.jdbc:mariadb-java-client:3.0.6")
implementation("org.yaml:snakeyaml:2.0")
implementation("com.zaxxer:HikariCP:6.0.0")
implementation("org.mariadb.jdbc:mariadb-java-client:3.5.0")
implementation("org.yaml:snakeyaml:2.3")
implementation("xyz.acrylicstyle.java-util:expression:2.0.0-SNAPSHOT")
compileOnly("net.azisaba:JoinFilter:1.0.0")
compileOnly("net.azisaba.ballotbox:receiver:1.0.1")
Expand All @@ -75,13 +75,13 @@ dependencies {
compileOnly("com.github.MyPetORG.MyPet:mypet-api:5c8ceeac6a")
compileOnly("de.keyle:knbt:0.0.5")
compileOnly("com.github.Staartvin:Autorank-2:4.5.1")
//compileOnly("org.spigotmc:spigot-api:1.20.2-R0.1-SNAPSHOT")
compileOnly("io.papermc.paper:paper-api:1.20.2-R0.1-SNAPSHOT")
//compileOnly("org.spigotmc:spigot-api:1.21.1-R0.1-SNAPSHOT")
compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT")
compileOnly("com.github.Staartvin:Statz:v1.5.5") {
exclude("nl.lolmewn.stats", "Stats")
exclude("me.staartvin", "PluginLibrary")
}
paperweight.paperDevBundle("1.20.2-R0.1-SNAPSHOT")
paperweight.paperDevBundle("1.21.1-R0.1-SNAPSHOT")
}

paperweight.reobfArtifactConfiguration.set(io.papermc.paperweight.userdev.ReobfArtifactConfiguration.REOBF_PRODUCTION)
Expand Down
15 changes: 10 additions & 5 deletions src/main/java/com/github/mori01231/lifecore/block/CustomBlock.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@ package com.github.mori01231.lifecore.block

import com.github.mori01231.lifecore.region.WorldLocation
import com.github.mori01231.lifecore.util.AxisX
import com.github.mori01231.lifecore.util.ItemUtil
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonElement
import net.kyori.adventure.text.Component
import net.minecraft.core.component.DataComponents
import net.minecraft.nbt.CompoundTag
import net.minecraft.world.item.component.CustomData
import org.bukkit.Material
import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack
import org.bukkit.craftbukkit.inventory.CraftItemStack
import org.bukkit.event.Listener
import org.bukkit.event.block.BlockPlaceEvent
import org.bukkit.event.player.PlayerInteractEvent
Expand Down Expand Up @@ -45,9 +48,9 @@ abstract class CustomBlock(
}

open fun onPlace(e: BlockPlaceEvent): CustomBlockState {
val nms = CraftItemStack.asNMSCopy(e.itemInHand)
val tagString = if (nms.hasTag() && nms.tag!!.contains("CustomBlockState")) {
nms.tag!!.getCompound("CustomBlockState").getString("tag")
val itemTag = ItemUtil.getCustomData(e.itemInHand)
val tagString = if (itemTag != null && itemTag.contains("CustomBlockState")) {
itemTag.getCompound("CustomBlockState").getString("tag")
} else {
""
}
Expand All @@ -71,12 +74,14 @@ abstract class CustomBlock(
lore = this@CustomBlock.lore
}
val nms = CraftItemStack.asNMSCopy(item)
nms.orCreateTag.put("CustomBlockState", CompoundTag().apply {
val itemTag = ItemUtil.getCustomData(item) ?: CompoundTag()
itemTag.put("CustomBlockState", CompoundTag().apply {
putString("blockName", this@CustomBlock.name)
if (state != null) {
putString("tag", Json.encodeToString(state.tag))
}
})
nms.set(DataComponents.CUSTOM_DATA, CustomData.of(itemTag))
return CraftItemStack.asCraftMirror(nms)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,21 @@ import com.github.mori01231.lifecore.util.MapUtil
import com.github.mori01231.lifecore.util.MapUtil.getCanvases
import net.kyori.adventure.text.Component
import net.kyori.adventure.text.format.NamedTextColor
import net.minecraft.core.component.DataComponents
import net.minecraft.nbt.ByteArrayTag
import net.minecraft.nbt.CompoundTag
import net.minecraft.nbt.TagParser
import net.minecraft.world.item.component.CustomData
import org.bukkit.Bukkit
import org.bukkit.ChatColor
import org.bukkit.command.Command
import org.bukkit.command.CommandSender
import org.bukkit.command.TabExecutor
import org.bukkit.craftbukkit.v1_20_R2.CraftServer
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer
import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack
import org.bukkit.craftbukkit.v1_20_R2.map.CraftMapRenderer
import org.bukkit.craftbukkit.v1_20_R2.map.CraftMapView
import org.bukkit.craftbukkit.CraftServer
import org.bukkit.craftbukkit.entity.CraftPlayer
import org.bukkit.craftbukkit.inventory.CraftItemStack
import org.bukkit.craftbukkit.map.CraftMapRenderer
import org.bukkit.craftbukkit.map.CraftMapView
import org.bukkit.entity.Player
import org.bukkit.inventory.meta.MapMeta
import org.bukkit.util.Vector
Expand Down Expand Up @@ -208,7 +210,7 @@ class LifeCoreUtilCommand(val plugin: LifeCore) : TabExecutor {
},
GetTag {
override fun execute(plugin: LifeCore, player: CommandSender, args: Array<String>) {
var tag = CraftItemStack.asNMSCopy((player as Player).inventory.itemInMainHand).tag ?: run {
var tag = ItemUtil.getCustomData((player as Player).inventory.itemInMainHand) ?: run {
player.sendMessage(Component.text("Item has no tag.", NamedTextColor.RED))
return
}
Expand All @@ -233,8 +235,9 @@ class LifeCoreUtilCommand(val plugin: LifeCore) : TabExecutor {
return
}
val item = CraftItemStack.asNMSCopy((player as Player).inventory.itemInMainHand)
val tag = item.tag ?: CompoundTag()
val tag = ItemUtil.getCustomData((player as Player).inventory.itemInMainHand) ?: CompoundTag()
tag.merge(TagParser.parseTag(args.joinToString(" ")))
item.set(DataComponents.CUSTOM_DATA, CustomData.of(tag))
player.inventory.setItemInMainHand(CraftItemStack.asBukkitCopy(item))
}
},
Expand All @@ -244,8 +247,9 @@ class LifeCoreUtilCommand(val plugin: LifeCore) : TabExecutor {
player.sendMessage(Component.text("Usage: /lifecoreutil $commandName <value>", NamedTextColor.RED))
return
}
val tag = TagParser.parseTag(args.joinToString(" "))
val item = CraftItemStack.asNMSCopy((player as Player).inventory.itemInMainHand)
item.tag = TagParser.parseTag(args.joinToString(" "))
item.set(DataComponents.CUSTOM_DATA, CustomData.of(tag))
player.inventory.setItemInMainHand(CraftItemStack.asBukkitCopy(item))
}
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.mori01231.lifecore.event;

import net.minecraft.world.entity.Entity;
import org.bukkit.craftbukkit.v1_20_R2.CraftWorld;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package com.github.mori01231.lifecore.listener

import com.github.mori01231.lifecore.LifeCore
import com.github.mori01231.lifecore.util.ItemUtil
import net.kyori.adventure.text.Component
import org.bukkit.GameMode
import org.bukkit.Location
import org.bukkit.Material
import org.bukkit.Sound
import org.bukkit.craftbukkit.v1_20_R2.inventory.CraftItemStack
import org.bukkit.craftbukkit.inventory.CraftItemStack
import org.bukkit.entity.Arrow
import org.bukkit.entity.Player
import org.bukkit.event.EventHandler
Expand Down Expand Up @@ -45,14 +46,11 @@ class CustomBlockListener(val plugin: LifeCore) : Listener {

@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
fun onBlockPlace(e: BlockPlaceEvent) {
val nms = CraftItemStack.asNMSCopy(e.itemInHand)
if (!nms.hasTag()) {
val itemTag = ItemUtil.getCustomData(e.itemInHand)
if (itemTag == null || !itemTag.contains("CustomBlockState")) {
return
}
if (!nms.tag!!.contains("CustomBlockState")) {
return
}
val blockState = nms.tag!!.getCompound("CustomBlockState")
val blockState = itemTag.getCompound("CustomBlockState")
val blockName = blockState.getString("blockName")
val block = plugin.customBlockManager.findBlockByName(blockName) ?: return
if (!e.player.hasPermission("lifecore.customblock.place.$blockName")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.item.Items;
import org.bukkit.ChatColor;
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftItem;
import org.bukkit.craftbukkit.entity.CraftItem;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerDropItemEvent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.github.mori01231.lifecore.listener.item
import com.github.mori01231.lifecore.data.DataLoader
import com.github.mori01231.lifecore.util.ItemUtil
import org.bukkit.Material
import org.bukkit.craftbukkit.v1_20_R2.block.data.CraftBlockData
import org.bukkit.craftbukkit.block.data.CraftBlockData
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.block.Action
Expand All @@ -23,17 +23,17 @@ class PicksawItemListener(private val dataLoader: DataLoader) : Listener {
if (ItemUtil.getStringTag(item, "LifeItemId") != ITEM_ID) return
val minecraftName = "minecraft:" + ((e.clickedBlock ?: return).blockData as CraftBlockData).state.block.asItem().toString()
if (dataLoader.findTag("minecraft:mineable/axe")?.resolve()?.contains(minecraftName) == true) {
item.type = Material.valueOf(item.type.name.substring(0, item.type.name.lastIndexOf('_')) + "_AXE")
e.player.inventory.setItemInMainHand(item)
val type = Material.valueOf(item.type.name.substring(0, item.type.name.lastIndexOf('_')) + "_AXE")
e.player.inventory.setItemInMainHand(ItemUtil.cloneWithNewMaterial(item, type))
} else if (dataLoader.findTag("minecraft:mineable/pickaxe")?.resolve()?.contains(minecraftName) == true) {
item.type = Material.valueOf(item.type.name.substring(0, item.type.name.lastIndexOf('_')) + "_PICKAXE")
e.player.inventory.setItemInMainHand(item)
val type = Material.valueOf(item.type.name.substring(0, item.type.name.lastIndexOf('_')) + "_PICKAXE")
e.player.inventory.setItemInMainHand(ItemUtil.cloneWithNewMaterial(item, type))
} else if (dataLoader.findTag("minecraft:mineable/shovel")?.resolve()?.contains(minecraftName) == true) {
item.type = Material.valueOf(item.type.name.substring(0, item.type.name.lastIndexOf('_')) + "_SHOVEL")
e.player.inventory.setItemInMainHand(item)
val type = Material.valueOf(item.type.name.substring(0, item.type.name.lastIndexOf('_')) + "_SHOVEL")
e.player.inventory.setItemInMainHand(ItemUtil.cloneWithNewMaterial(item, type))
} else if (dataLoader.findTag("minecraft:mineable/hoe")?.resolve()?.contains(minecraftName) == true) {
item.type = Material.valueOf(item.type.name.substring(0, item.type.name.lastIndexOf('_')) + "_HOE")
e.player.inventory.setItemInMainHand(item)
val type = Material.valueOf(item.type.name.substring(0, item.type.name.lastIndexOf('_')) + "_HOE")
e.player.inventory.setItemInMainHand(ItemUtil.cloneWithNewMaterial(item, type))
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.mori01231.lifecore.map

import kotlinx.serialization.Serializable
import org.bukkit.craftbukkit.v1_20_R2.map.CraftMapCanvas
import org.bukkit.craftbukkit.map.CraftMapCanvas

@Serializable
data class SerializedMapCanvas(val buffer: ByteArray, val base: ByteArray) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.github.mori01231.lifecore.map

import net.minecraft.world.level.saveddata.maps.MapItemSavedData
import org.bukkit.craftbukkit.v1_20_R2.map.CraftMapCanvas
import org.bukkit.craftbukkit.v1_20_R2.map.CraftMapView
import org.bukkit.craftbukkit.map.CraftMapCanvas
import org.bukkit.craftbukkit.map.CraftMapView
import org.bukkit.entity.Player
import org.bukkit.map.MapCanvas
import org.bukkit.map.MapRenderer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import net.minecraft.server.level.ServerPlayer;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_20_R2.entity.CraftPlayer;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ fun ItemStack.damage(player: Player? = null, amount: Int = 1, checkDurabilityEnc
itemMeta = itemMeta.apply {
if (this !is Damageable) error("not damageable")

val level = getEnchantLevel(Enchantment.DURABILITY)
val level = getEnchantLevel(Enchantment.UNBREAKING)
if (checkDurabilityEnchantment && Math.random() >= 1.0 / (level + 1)) {
return
}
Expand All @@ -28,7 +28,7 @@ fun ItemStack.damage(player: Player? = null, amount: Int = 1, checkDurabilityEnc
type = Material.AIR
if (player != null) {
player.world.playSound(player.location, Sound.ITEM_SHIELD_BREAK, 1F, 1F)
player.world.spawnParticle(Particle.ITEM_CRACK, player.location, 1, this@damage)
player.world.spawnParticle(Particle.ITEM, player.location, 1, this@damage)
}
}
}
Expand Down
Loading

0 comments on commit 761a570

Please sign in to comment.