A feature-rich Minecraft plugin which enhances gaming experience
git clone git://soophie.de/poppy
1
poppy.jar2
.project3
.gradle/3
build/3
\ No newline at end of file4
build/5
.settings/
6
cpdl=";"7
fi9
javac -cp "./libs/bungeecord-chat-1.20-R0.2.jar${cpdl}./libs/spigot-api-1.21.1-R0.1-20240831.215322-16.jar" src/poppy/*.java src/poppy/modules/*.java -d build10
jar cvfm poppy.jar res/MANIFEST.MF -C res plugin.yml -C build poppy11
rm -rf ./build
1
#!/bin/bash3
if [[ "$OSTYPE" == "linux-gnu" || "$OSTYPE" == "darwin" ]]; then4
cpdl=":"5
else6
cpdl=";"7
fi9
javac -cp "./libs/bungeecord-chat-1.20-R0.2.jar${cpdl}./libs/spigot-api-1.21.1-R0.1-20240831.215322-16.jar" src/poppy/*.java src/poppy/modules/*.java -d build 2>&110
if [ $? -eq 0 ]; then11
rm -rf ./build12
fi13
exit 0
25
import poppy.modules.LeavesDecayModule;26
import poppy.modules.SpawnerModule;27
import poppy.modules.PlayerMountModule;28
import poppy.modules.FastTravelModule;31
public class Main extends JavaPlugin {
45
private AutoBreakerModule autoBreakerModule;46
private PlayerMountModule playerMountModule;47
private BlockDetectorModule blockDetectorModule;48
private FastTravelModule fastTravelModule;50
@Override51
public void onEnable() {
89
blockDetectorModule = new BlockDetectorModule();90
pluginManager.registerEvents(blockDetectorModule, this);92
fastTravelModule = new FastTravelModule(this);93
pluginManager.registerEvents(fastTravelModule, this);94
}96
@Override
1
package poppy.modules;3
import org.bukkit.Location;4
import org.bukkit.Material;5
import org.bukkit.Sound;6
import org.bukkit.block.Block;7
import org.bukkit.plugin.Plugin;8
import org.bukkit.entity.Player;9
import org.bukkit.event.Listener;10
import org.bukkit.event.EventHandler;11
import org.bukkit.event.player.PlayerInteractEvent;12
import org.bukkit.inventory.ItemStack;13
import org.bukkit.inventory.EquipmentSlot;14
import org.bukkit.inventory.meta.CompassMeta;15
import org.bukkit.scheduler.BukkitRunnable;17
public class FastTravelModule implements Listener {19
private Plugin plugin;21
public FastTravelModule(final Plugin plugin) {22
this.plugin = plugin;23
}25
@EventHandler26
public void onPlayerInteract(final PlayerInteractEvent event) {27
if (event.getHand() != EquipmentSlot.HAND) {28
return;29
}30
final ItemStack item = event.getItem();31
if (item == null || item.getType() != Material.COMPASS) {32
return;33
}34
final Block block = event.getClickedBlock();35
if (block != null && block.getType() == Material.LODESTONE) {36
return;37
}38
final CompassMeta meta = (CompassMeta) item.getItemMeta();39
if (!meta.hasLodestone()) {40
return;41
}42
final Player player = event.getPlayer();43
final Location location = meta.getLodestone();44
new BukkitRunnable() {45
int timer = 5;46
@Override47
public void run() {48
final Location playerLocation = player.getLocation();49
if ( timer > 0) {50
player.playSound(playerLocation, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 100.0F, 1.0F);51
}52
if (timer == 0) {53
this.cancel();54
location.add(0.5, 1.0, 0.5);55
location.setYaw(playerLocation.getYaw());56
location.setPitch(playerLocation.getPitch());57
player.teleport(location);58
player.playSound(playerLocation, Sound.ENTITY_PLAYER_TELEPORT, 100.0F, 1.0F);59
}60
timer--;61
}62
}.runTaskTimer(this.plugin, 0L, 20L);63
}64
}