From dcdfa73df7910d4a35f1ed734cfc15029291e4aa Mon Sep 17 00:00:00 2001 From: Big Pappa Date: Thu, 3 Sep 2026 11:52:20 -0500 Subject: [PATCH] 0.1.0 Initial Release --- pom.xml | 50 +++++++++++++ .../rsfasterminecarts/MinecartListener.java | 66 ++++++++++++++++++ .../rsfasterminecarts/RSFasterMinecarts.java | 24 +++++++ src/main/resources/config.yml | 4 ++ src/main/resources/plugin.yml | 6 ++ .../rsfasterminecarts/MinecartListener.class | Bin 0 -> 2625 bytes 6 files changed, 150 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/com/rsscripting/rsfasterminecarts/MinecartListener.java create mode 100644 src/main/java/com/rsscripting/rsfasterminecarts/RSFasterMinecarts.java create mode 100644 src/main/resources/config.yml create mode 100644 src/main/resources/plugin.yml create mode 100644 target/classes/com/rsscripting/rsfasterminecarts/MinecartListener.class diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..bc0353c --- /dev/null +++ b/pom.xml @@ -0,0 +1,50 @@ + + + + 4.0.0 + + com.rsscripting + RS-FasterMinecarts + 0.1.0 + jar + + + 21 + UTF-8 + + + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + + + + io.papermc.paper + paper-api + 1.21.10-R0.1-SNAPSHOT + provided + + + + + RS-FasterMinecarts-0-1-0 + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.1 + + 21 + + + + + + \ No newline at end of file diff --git a/src/main/java/com/rsscripting/rsfasterminecarts/MinecartListener.java b/src/main/java/com/rsscripting/rsfasterminecarts/MinecartListener.java new file mode 100644 index 0000000..db47886 --- /dev/null +++ b/src/main/java/com/rsscripting/rsfasterminecarts/MinecartListener.java @@ -0,0 +1,66 @@ +package com.rsscripting.rsfasterminecarts; + +import org.bukkit.entity.Minecart; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.vehicle.VehicleEnterEvent; +import org.bukkit.event.vehicle.VehicleExitEvent; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class MinecartListener implements Listener { + + private final RSFasterMinecarts plugin; + private final Map originalSpeeds = new HashMap<>(); + + public MinecartListener(RSFasterMinecarts plugin) { + this.plugin = plugin; + } + + @EventHandler + public void onVehicleEnter(VehicleEnterEvent event) { + + if (!(event.getVehicle() instanceof Minecart minecart)) { + return; + } + + if (!(event.getEntered() instanceof Player)) { + return; + } + + UUID minecartId = minecart.getUniqueId(); + + // Do not multiply an already modified minecart. + if (originalSpeeds.containsKey(minecartId)) { + return; + } + + double originalSpeed = minecart.getMaxSpeed(); + double multiplier = plugin.getConfig().getDouble("max-speed", 3.0); + + originalSpeeds.put(minecartId, originalSpeed); + + minecart.setMaxSpeed(originalSpeed * multiplier); + } + + @EventHandler + public void onVehicleExit(VehicleExitEvent event) { + + if (!(event.getVehicle() instanceof Minecart minecart)) { + return; + } + + UUID minecartId = minecart.getUniqueId(); + + Double originalSpeed = originalSpeeds.remove(minecartId); + + if (originalSpeed == null) { + return; + } + + minecart.setMaxSpeed(originalSpeed); + } +} \ No newline at end of file diff --git a/src/main/java/com/rsscripting/rsfasterminecarts/RSFasterMinecarts.java b/src/main/java/com/rsscripting/rsfasterminecarts/RSFasterMinecarts.java new file mode 100644 index 0000000..e68e0e0 --- /dev/null +++ b/src/main/java/com/rsscripting/rsfasterminecarts/RSFasterMinecarts.java @@ -0,0 +1,24 @@ +package com.rsscripting.rsfasterminecarts; + +import org.bukkit.plugin.java.JavaPlugin; + +public class RSFasterMinecarts extends JavaPlugin { + + @Override + public void onEnable() { + + saveDefaultConfig(); + + getServer().getPluginManager().registerEvents( + new MinecartListener(this), + this + ); + + getLogger().info("RS-FasterMinecarts enabled."); + } + + @Override + public void onDisable() { + getLogger().info("RS-FasterMinecarts disabled."); + } +} \ No newline at end of file diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..0d469d5 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,4 @@ +# Maximum speed multiplier for player-occupied minecarts. +# 1.0 = normal Minecraft speed +# 3.0 = three times normal speed +max-speed: 3.0 \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..cb51fe6 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,6 @@ +name: RS-FasterMinecarts +version: ${project.version} +main: com.rsscripting.rsfasterminecarts.RSFasterMinecarts +api-version: '1.21' +description: Increases the maximum speed of player-occupied minecarts. +author: RS Scripting \ No newline at end of file diff --git a/target/classes/com/rsscripting/rsfasterminecarts/MinecartListener.class b/target/classes/com/rsscripting/rsfasterminecarts/MinecartListener.class new file mode 100644 index 0000000000000000000000000000000000000000..acca1ef6a59f047c35c49fba2e5b5d195ef26811 GIT binary patch literal 2625 zcmbVOZBr9h6n<_JvJe)92o@0QOREyz;v20RKq=8e4QP$TYG0SIgbkbBxGxlciv0uq z>`cYd&UExsXFAh=WIKKKZbA~nR7Wy%clX?T&vTyVoO>>R{rlS=0OqliKm<_*F%=z% z3-p$?Z7pqTRw;dFt*jS4f%uGJ8Qz>gbTm~^&?(R-7x|uHrWZALb6KkfS!=Bv8C z?g|{vHNXgz2|)T(Byoh1RZX9Z1*UUv$GVrlCDH4cZYF^N998gvia`tsjM+{pz2
  • j-wb915+&WMnFWrIrgF`jEzj_t)OTeR91|FBpRWfJ zgmGNOhd2?sl`#6cz{r7aIZf~MdP-oh-RoUbd!jqt7{*5`KE@e=Zic#Q8IOH^iB6Mr z+E8?Lbt#+a#yN~CNU0dZxIj;1nu2qG(Y8Fzu-x1F6M=!zaC=jUWKxd;yh#;PNQZdK z+Kx=1EShWr7jRL*B^8%3EpX{Qk|oeZ8Vk0yVU*~hRT&0Iv+ro0VO!}9gDJbkAzWQE zXFBmIom8})NjE61_>E2;0RAPA!Hj}g6?3>QkZzLnUHpcDWo>`W)CG<SREN-?Ovie44TQhzA&PE_`ww56&akxO{=yMf|SfZp=pA~qe87e%hnFCVO zZVGaBTSX4b%$2KqjaIAT$9*13N3Yo1)Z**` z0X8$M#T;l;Q1L*P&brjG5NM&`p}E;ZFOi*}~zQ3N=CJ zGE&0#D8)>wAP`%y*NJ;L#}2mQSJrgrz9uUmnX`+USe^1`iid)Q`luUt5-i<~SB$3r{&u6?9yE5yX8FD#u~QdyKL1p5*T&PP6Bn z;e~P*(@0^Kch?FgxPA%-(vsIA|0(ICk9FvhVR@fn85<~(-vFfxXU|~)o7@?tr%9Bt zMU_@C0+VlXREXb;SpRF#<#6IP`W0BH(i*3i$9xJna6_%|H@$SwHcMGn+O%pF=*tLR zV*XleDE4Qd(@<;|t8dUhErq{K`qK>f3WK_aam?U6L%o0-e4Cea=NL>g-PwJ*v!v@u nx}!C^BdoHJ?l_ZOhEKWy$t0pRlK