diff --git a/.classpath b/.classpath index 2e9dd1b..c083794 100644 --- a/.classpath +++ b/.classpath @@ -1,8 +1,36 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore index d5e9b9a..f604e26 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.class /bin/ -/debug code.txt \ No newline at end of file +/debug code.txt +/.vscode/ \ No newline at end of file diff --git a/.project b/.project index 7d619c2..f2833a3 100644 --- a/.project +++ b/.project @@ -1,17 +1,34 @@ - - - itemstay-master - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - + + + PlotMe + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + + + 1624448535208 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..7a53139 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 +encoding/src=UTF-8 diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..d4313d4 --- /dev/null +++ b/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..1b6e1ef --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e0f15db --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic" +} \ No newline at end of file diff --git a/lib/Clearlag.jar b/lib/Clearlag.jar new file mode 100644 index 0000000..63e0045 Binary files /dev/null and b/lib/Clearlag.jar differ diff --git a/plugin.yml b/plugin.yml index fa23e12..d5c3d3b 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,6 +1,7 @@ name: ItemStay main: me.nighteyes604.ItemStay.ItemStay -version: 1.5.6 +version: 2.0.0 +api-version: '1.16' description: A plugin allowing users to create item displays. softdepend: [Multiverse-Core, Multiworld] load: POSTWORLD diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..cc492b7 --- /dev/null +++ b/pom.xml @@ -0,0 +1,88 @@ + + 4.0.0 + me.nighteyes604.ItemStay + itemstay + 2.0.0 + ItemStay + http://dev.bukkit.org/bukkit-mods/plotme/ + + clean package install + ItemStay + src + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.8 + 1.8 + true + true + + + + org.apache.maven.plugins + maven-shade-plugin + 2.3 + + + + + + + + + package + + shade + + + + + + + + . + true + . + + plugin.yml + + + + + + UTF-8 + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/groups/public + + always + + + always + + + + + + + org.spigotmc + spigot-api + 1.16.5-R0.1-SNAPSHOT + + provided + + + me.minebuilders + clearlag-core + 2.9.7 + system + ${project.basedir}/lib/Clearlag.jar + + + diff --git a/src/me/nighteyes604/ItemStay/FrozenItem.java b/src/me/nighteyes604/ItemStay/FrozenItem.java index 45ff582..be16e66 100644 --- a/src/me/nighteyes604/ItemStay/FrozenItem.java +++ b/src/me/nighteyes604/ItemStay/FrozenItem.java @@ -1,12 +1,12 @@ package me.nighteyes604.ItemStay; import java.util.Locale; - import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.Damageable; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.util.Vector; @@ -77,7 +77,7 @@ void respawn() } } - void destroy() + public void destroy() { if (!hasWorldAndChunk()) return; @@ -103,7 +103,8 @@ private void removeDuplicateItems() private void place() { - ItemStack stack = new ItemStack(material, 1, data); + ItemStack stack = new ItemStack(material, 1); + ((Damageable)stack.getItemMeta()).setDamage(data); item = location.getWorld().dropItem(new Location(location.getWorld(), location.getX() + dropOffset.getX(), location.getY() + dropOffset.getY(), location.getZ() + dropOffset.getZ()), stack); ItemMeta m = item.getItemStack().getItemMeta(); diff --git a/src/me/nighteyes604/ItemStay/ItemStay.java b/src/me/nighteyes604/ItemStay/ItemStay.java index 23e6003..afe4ec4 100644 --- a/src/me/nighteyes604/ItemStay/ItemStay.java +++ b/src/me/nighteyes604/ItemStay/ItemStay.java @@ -23,6 +23,7 @@ import org.bukkit.entity.Item; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.Damageable; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; @@ -305,8 +306,8 @@ public QInfo registerItem(String owner, Item item) return new QInfo(fi.getId(), QResult.LOCATION_TAKEN); } } - - frozenItems.add(new FrozenItem(owner, item.getItemStack().getType(), item.getItemStack().getDurability(), item.getLocation().getWorld().getName(), item.getLocation().getBlockX(), item.getLocation().getBlockY(), item.getLocation().getBlockZ())); + short damage = (short)((Damageable)item.getItemStack().getItemMeta()).getDamage(); + frozenItems.add(new FrozenItem(owner, item.getItemStack().getType(), damage, item.getLocation().getWorld().getName(), item.getLocation().getBlockX(), item.getLocation().getBlockY(), item.getLocation().getBlockZ())); save(); FrozenItem newfi = frozenItems.get(frozenItems.size() - 1); newfi.respawn(); @@ -334,8 +335,8 @@ public QInfo registerItem(String owner, ItemStack itemStack, Location location) return new QInfo(fi.getId(), QResult.LOCATION_TAKEN); } } - - frozenItems.add(new FrozenItem(owner, itemStack.getType(), itemStack.getDurability(), location.getWorld().getName(), location.getBlockX(), location.getBlockY(), location.getBlockZ())); + short damage = (short)((Damageable)itemStack.getItemMeta()).getDamage(); + frozenItems.add(new FrozenItem(owner, itemStack.getType(), damage, location.getWorld().getName(), location.getBlockX(), location.getBlockY(), location.getBlockZ())); save(); FrozenItem newfi = frozenItems.get(frozenItems.size() - 1); newfi.respawn(); @@ -507,7 +508,6 @@ void save() } } - @SuppressWarnings("deprecation") private void loadDataFile() { File folder = getDataFolder(); @@ -564,17 +564,7 @@ private void loadDataFile() offset = 1; Material mat; - try - { - //old system, numeric id - mat = Material.getMaterial(Integer.parseInt(lineBits[5 + offset])); - } - catch (NumberFormatException e) - { - //new system, mat name - mat = Material.getMaterial(lineBits[5 + offset]); - } - + mat = Material.getMaterial(lineBits[5 + offset]); short data = Short.valueOf(lineBits[6 + offset]); FrozenItem fi = new FrozenItem(player, mat, data, lineBits[1], x, y, z); diff --git a/src/me/nighteyes604/ItemStay/ItemStayListener.java b/src/me/nighteyes604/ItemStay/ItemStayListener.java index b9ac72a..b49bea3 100644 --- a/src/me/nighteyes604/ItemStay/ItemStayListener.java +++ b/src/me/nighteyes604/ItemStay/ItemStayListener.java @@ -4,7 +4,6 @@ import java.util.List; import me.minebuilders.clearlag.events.EntityRemoveEvent; -import me.nighteyes604.ItemStay.FrozenItem; import org.bukkit.ChatColor; import org.bukkit.Location; @@ -15,10 +14,11 @@ import org.bukkit.event.entity.ItemDespawnEvent; import org.bukkit.event.inventory.InventoryPickupItemEvent; import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.entity.EntityPickupItemEvent; import org.bukkit.event.world.ChunkLoadEvent; +import org.bukkit.inventory.meta.Damageable; -class ItemStayListener implements Listener +public class ItemStayListener implements Listener { private static ItemStay plugin; @@ -28,7 +28,7 @@ class ItemStayListener implements Listener } //Try to prevent despawning from unknown causes - @EventHandler(priority = EventPriority.NORMAL) + @EventHandler //(priority = EventPriority.NORMAL) public void onItemDespawnEvent(ItemDespawnEvent event) { for (FrozenItem fi : plugin.frozenItems) @@ -44,7 +44,7 @@ public void onItemDespawnEvent(ItemDespawnEvent event) } //Prevent pickup by misc. inventories/entities - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + @EventHandler //(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onInventoryPickupItemEvent(final InventoryPickupItemEvent e) { if (!e.getItem().getItemStack().hasItemMeta()) @@ -62,23 +62,23 @@ public void onInventoryPickupItemEvent(final InventoryPickupItemEvent e) } } - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + @EventHandler //(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onChunkLoadEvent(final ChunkLoadEvent event) - { - for (FrozenItem fi : plugin.frozenItems) - { - if (!fi.hasWorldAndChunk()) - continue; - - if (fi.getLocation().getChunk().equals(event.getChunk())) - { - fi.respawnIfDead(); - } - } + { // Disabled + // for (FrozenItem fi : plugin.frozenItems) + // { + // if (!fi.hasWorldAndChunk()) + // continue; + + // if (fi.getLocation().getChunk().equals(event.getChunk())) + // { + // fi.respawnIfDead(); + // } + // } } //Handle item placing - @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + @EventHandler //(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onPlayerDropItemEvent(final PlayerDropItemEvent event) { if (plugin.saveNextItem.contains(event.getPlayer().getName().toLowerCase())) @@ -104,8 +104,8 @@ public void run() return; } } - - plugin.frozenItems.add(new FrozenItem(event.getPlayer().getName(), item.getItemStack().getType(), item.getItemStack().getDurability(), item.getLocation().getWorld().getName(), item.getLocation().getBlockX(), item.getLocation().getBlockY(), item.getLocation().getBlockZ())); + short damage = (short)((Damageable)item.getItemStack().getItemMeta()).getDamage(); + plugin.frozenItems.add(new FrozenItem(event.getPlayer().getName(), item.getItemStack().getType(), damage, item.getLocation().getWorld().getName(), item.getLocation().getBlockX(), item.getLocation().getBlockY(), item.getLocation().getBlockZ())); item.remove(); plugin.save(); FrozenItem fi = plugin.frozenItems.get(plugin.frozenItems.size() - 1); @@ -118,8 +118,8 @@ public void run() } //Prevent player pickup - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) - public void onPlayerPickupItemEvent(PlayerPickupItemEvent event) + @EventHandler //(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onEntityPickupItemEvent(EntityPickupItemEvent event) { if (!event.getItem().getItemStack().hasItemMeta()) return; diff --git a/target/ItemStay.jar b/target/ItemStay.jar new file mode 100644 index 0000000..ccd73d1 Binary files /dev/null and b/target/ItemStay.jar differ diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml new file mode 100644 index 0000000..4bbc4df --- /dev/null +++ b/target/classes/plugin.yml @@ -0,0 +1,22 @@ +name: ItemStay +main: me.nighteyes604.ItemStay.ItemStay +version: 2.0.0 +api-version: '1.16' +description: A plugin allowing users to create item displays. +softdepend: [Multiverse-Core, Multiworld] +load: POSTWORLD +author: Nighteyes604, speeed +commands: + itemstay: + description: The base for all item display commands. Type /itemstay help for more information. + usage: / help for more information. +permissions: + itemstay.admin: + description: Grants access to display creation, deletion of any display, respawning items and reloading items from file. + default: op + itemstay.create: + description: Grants access to display creation and deletion of owned displays. + default: op + itemstay.delete: + description: Grants access to deletion of any display. + default: op \ No newline at end of file diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..889157d --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Thu Jun 24 09:50:21 CST 2021 +version=2.0.0 +groupId=me.nighteyes604.ItemStay +artifactId=itemstay diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..b798f68 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,8 @@ +me/nighteyes604/ItemStay/ItemStayListener.class +me/nighteyes604/ItemStay/ItemStay$2.class +me/nighteyes604/ItemStay/ItemStayListener$1.class +me/nighteyes604/ItemStay/QInfo.class +me/nighteyes604/ItemStay/ItemStay.class +me/nighteyes604/ItemStay/ItemStay$1.class +me/nighteyes604/ItemStay/FrozenItem.class +me/nighteyes604/ItemStay/QResult.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..b33abdb --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,5 @@ +/home/fjy/Desktop/Itemstay/src/me/nighteyes604/ItemStay/FrozenItem.java +/home/fjy/Desktop/Itemstay/src/me/nighteyes604/ItemStay/QInfo.java +/home/fjy/Desktop/Itemstay/src/me/nighteyes604/ItemStay/ItemStayListener.java +/home/fjy/Desktop/Itemstay/src/me/nighteyes604/ItemStay/QResult.java +/home/fjy/Desktop/Itemstay/src/me/nighteyes604/ItemStay/ItemStay.java diff --git a/target/original-ItemStay.jar b/target/original-ItemStay.jar new file mode 100644 index 0000000..ccd73d1 Binary files /dev/null and b/target/original-ItemStay.jar differ