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 d954a86c40c729be12417ab7628bf46eca7aac70..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..37b328a153c4591208a0fa7a7f9c56dfc561c82f --- /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 0000000000000000000000000000000000000000..3465b29367df955e576ea157947bbc1cec3c885d --- /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 d56fef5bb58695b6e8ff6cfb2d8edebfcdda636f..884c9b849d733041d028eb16a88fc6ad47c54c33 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 b004b12e351d1c8bc126275d3b29cbff5b888a8a..0000000000000000000000000000000000000000 --- 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 26f4e84eda39ec6c8abb1b985e4004f4356bb89d..5ec68672c7b1bb401514a533bd7d05a01bda043f 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! } }