From 87ec95fef515ff8fb13cc5a6b8a6739ac37e6118 Mon Sep 17 00:00:00 2001 From: blank <blank@caltech.edu> Date: Mon, 9 Dec 2024 05:03:49 -0800 Subject: [PATCH] move things around, rename a bit --- .../caltech/cs001/CaltechMinecraftEvent.java | 27 ----------- .../caltech/cs001/CaltechMinecraftMod.java | 45 +++++++++++++++++++ .../cs001/IDidntNeedThatAnywayMod.java | 21 +++++++++ .../java/edu/caltech/cs001/MainPlugin.java | 2 +- .../java/edu/caltech/cs001/SparklerEvent.java | 21 --------- ...leSpawnerEvent.java => TurtlePondMod.java} | 19 ++++---- 6 files changed, 76 insertions(+), 59 deletions(-) delete mode 100644 src/main/java/edu/caltech/cs001/CaltechMinecraftEvent.java create mode 100644 src/main/java/edu/caltech/cs001/CaltechMinecraftMod.java create mode 100644 src/main/java/edu/caltech/cs001/IDidntNeedThatAnywayMod.java delete mode 100644 src/main/java/edu/caltech/cs001/SparklerEvent.java rename src/main/java/edu/caltech/cs001/{TurtleSpawnerEvent.java => TurtlePondMod.java} (65%) diff --git a/src/main/java/edu/caltech/cs001/CaltechMinecraftEvent.java b/src/main/java/edu/caltech/cs001/CaltechMinecraftEvent.java deleted file mode 100644 index d954a86..0000000 --- a/src/main/java/edu/caltech/cs001/CaltechMinecraftEvent.java +++ /dev/null @@ -1,27 +0,0 @@ -package edu.caltech.cs001; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.entity.EntityType; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.plugin.java.JavaPlugin; - -public abstract class CaltechMinecraftEvent implements Listener { - private final JavaPlugin plugin; - - public CaltechMinecraftEvent(JavaPlugin plugin) { - this.plugin = plugin; - } - - private abstract void onBucketEmpty(PlayerBucketEmptyEvent event); - - @EventHandler // tagging with @EventHandler will make Minecraft listen to this method - public void onBucketEmptySynced(PlayerBucketEmptyEvent event) { - // We are just making sure all the code in onBucketEmpty() happens at the same time. - this.plugin.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> this.onBucketEmpty(event), 1); - } -} diff --git a/src/main/java/edu/caltech/cs001/CaltechMinecraftMod.java b/src/main/java/edu/caltech/cs001/CaltechMinecraftMod.java new file mode 100644 index 0000000..37b328a --- /dev/null +++ b/src/main/java/edu/caltech/cs001/CaltechMinecraftMod.java @@ -0,0 +1,45 @@ +package edu.caltech.cs001; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.entity.EntityType; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerBucketEmptyEvent; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.plugin.java.JavaPlugin; + +public class CaltechMinecraftMod implements Listener { + private final JavaPlugin plugin; + + public CaltechMinecraftMod(JavaPlugin plugin) { + this.plugin = plugin; + } + + protected void onDropItem(PlayerDropItemEvent event) {} + protected void onBucketEmpty(PlayerBucketEmptyEvent event) {} + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + player.setOp(true); + } + + @EventHandler // tagging with @EventHandler will make Minecraft listen to this method + public void onDropItemSynced(PlayerDropItemEvent event) { + // We are just making sure all the code in onDropItem() happens at the same time. + this.plugin.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> this.onDropItem(event), 1); + } + + + + @EventHandler // tagging with @EventHandler will make Minecraft listen to this method + public void onBucketEmptySynced(PlayerBucketEmptyEvent event) { + // We are just making sure all the code in onBucketEmpty() happens at the same time. + this.plugin.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, () -> this.onBucketEmpty(event), 1); + } +} diff --git a/src/main/java/edu/caltech/cs001/IDidntNeedThatAnywayMod.java b/src/main/java/edu/caltech/cs001/IDidntNeedThatAnywayMod.java new file mode 100644 index 0000000..3465b29 --- /dev/null +++ b/src/main/java/edu/caltech/cs001/IDidntNeedThatAnywayMod.java @@ -0,0 +1,21 @@ +package edu.caltech.cs001; + +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Item; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerDropItemEvent; +import org.bukkit.plugin.java.JavaPlugin; + +public class IDidntNeedThatAnywayMod extends CaltechMinecraftMod { + public IDidntNeedThatAnywayMod(JavaPlugin plugin) { super(plugin); } + + protected void onDropItem(PlayerDropItemEvent event) { + Item item = event.getItemDrop(); + item.remove(); + } +} diff --git a/src/main/java/edu/caltech/cs001/MainPlugin.java b/src/main/java/edu/caltech/cs001/MainPlugin.java index d56fef5..884c9b8 100644 --- a/src/main/java/edu/caltech/cs001/MainPlugin.java +++ b/src/main/java/edu/caltech/cs001/MainPlugin.java @@ -15,6 +15,6 @@ public class MainPlugin extends JavaPlugin { @Override public void onEnable() { - this.manager.registerEvents(new SparklerEvent(this), this); + this.manager.registerEvents(new IDidntNeedThatAnywayMod(this), this); } } diff --git a/src/main/java/edu/caltech/cs001/SparklerEvent.java b/src/main/java/edu/caltech/cs001/SparklerEvent.java deleted file mode 100644 index b004b12..0000000 --- a/src/main/java/edu/caltech/cs001/SparklerEvent.java +++ /dev/null @@ -1,21 +0,0 @@ -package edu.caltech.cs001; - -import org.bukkit.Location; -import org.bukkit.block.Block; -import org.bukkit.entity.EntityType; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.plugin.java.JavaPlugin; - -public class SparklerEvent extends CaltechMinecraftEvent { - private void onBucketEmpty(PlayerBucketEmptyEvent event) { - Block block = event.getBlock(); - if (isPond(block)) { - destroyPond(block); - spawnTurtle(block.getWorld(), block.getLocation()); - } - } -} diff --git a/src/main/java/edu/caltech/cs001/TurtleSpawnerEvent.java b/src/main/java/edu/caltech/cs001/TurtlePondMod.java similarity index 65% rename from src/main/java/edu/caltech/cs001/TurtleSpawnerEvent.java rename to src/main/java/edu/caltech/cs001/TurtlePondMod.java index 26f4e84..5ec6867 100644 --- a/src/main/java/edu/caltech/cs001/TurtleSpawnerEvent.java +++ b/src/main/java/edu/caltech/cs001/TurtlePondMod.java @@ -10,7 +10,9 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.plugin.java.JavaPlugin; -public class TurtleSpawnerEvent extends CaltechMinecraftEvent { +public class TurtlePondMod extends CaltechMinecraftMod { + public TurtlePondMod(JavaPlugin plugin) { super(plugin); } + /** * Checks if the block `centerBlock` is a water block in the middle of a pond of Material.STONE. * @@ -29,16 +31,13 @@ public class TurtleSpawnerEvent extends CaltechMinecraftEvent { } /** - * Spawns a turtle in `world` at `location`. - **/ - private void spawnTurtle(World world, Location loc) { - // TODO: Implement me! - } - - /** - * TODO put docs here + * When a player empties a bucket (in this case, a water bucket) into the middle of + * a pond, this method (1) deletes the pond, and (2) spawns an EntityType.TURTLE where + * the pond was. + * + * Hint: This method should use the other two methods you wrote above! **/ - private void onBucketEmpty(PlayerBucketEmptyEvent event) { + protected void onBucketEmpty(PlayerBucketEmptyEvent event) { // TODO: Implement me! } } -- GitLab