From 5529a1769e6adc4dd826bac25f41ff29bc9d0921 Mon Sep 17 00:00:00 2001 From: md_5 Date: Fri, 27 Sep 2024 08:28:45 +1000 Subject: [PATCH] Implement base methods for tags --- .../org/bukkit/craftbukkit/tag/CraftTag.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/main/java/org/bukkit/craftbukkit/tag/CraftTag.java b/src/main/java/org/bukkit/craftbukkit/tag/CraftTag.java index 7bb716202..e95050109 100644 --- a/src/main/java/org/bukkit/craftbukkit/tag/CraftTag.java +++ b/src/main/java/org/bukkit/craftbukkit/tag/CraftTag.java @@ -1,5 +1,6 @@ package org.bukkit.craftbukkit.tag; +import java.util.Objects; import net.minecraft.core.HolderSet; import net.minecraft.core.IRegistry; import net.minecraft.tags.TagKey; @@ -29,4 +30,30 @@ public abstract class CraftTag implements Tag { public NamespacedKey getKey() { return CraftNamespacedKey.fromMinecraft(tag.location()); } + + @Override + public int hashCode() { + int hash = 3; + hash = 59 * hash + Objects.hashCode(this.registry); + hash = 59 * hash + Objects.hashCode(this.tag); + return hash; + } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + + if (!(obj instanceof CraftTag other)) { + return false; + } + + return Objects.equals(this.registry, other.registry) && Objects.equals(this.tag, other.tag); + } + + @Override + public String toString() { + return "CraftTag{" + this.tag + '}'; + } }