Initial commit

This commit is contained in:
Lncvrt committed 2025-08-16 10:44:15 -07:00
commit 287e8417ad
8 files changed
+914

No files matched your search

+41
View File
@@ -0,0 +1,41 @@
plugins {
id 'java'
}
group = 'xyz.lncvrt'
version = '1.0.0'
repositories {
mavenCentral()
}
dependencies {
compileOnly(files('libs/craftbukkit-1.6.4-R2.0.jar'))
}
def targetJavaVersion = 8
java {
def javaVersion = JavaVersion.toVersion(targetJavaVersion)
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
if (JavaVersion.current() < javaVersion) {
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
}
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
options.release.set(targetJavaVersion)
}
}
processResources {
def props = [version: version]
inputs.properties props
filteringCharset 'UTF-8'
filesMatching('plugin.yml') {
expand props
}
}
@@ -0,0 +1,71 @@
package xyz.lncvrt.speedlimitplugin;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
public final class SpeedLimitPlugin extends JavaPlugin implements Listener {
private final Map<UUID, Location> lastPos = new ConcurrentHashMap<>();
private final Map<UUID, Long> lastTime = new ConcurrentHashMap<>();
private static final double MAX_SPEED = 75.0;
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler(ignoreCancelled = true)
public void onPlayerTeleport(PlayerTeleportEvent e) {
UUID id = e.getPlayer().getUniqueId();
Location to = e.getTo();
lastPos.put(id, to);
lastTime.put(id, System.currentTimeMillis());
}
@EventHandler(ignoreCancelled = true)
public void onPlayerMove(PlayerMoveEvent e) {
Location to = e.getTo();
Location from = e.getFrom();
UUID id = e.getPlayer().getUniqueId();
long now = System.currentTimeMillis();
if (!to.getWorld().equals(from.getWorld())) {
lastPos.put(id, to);
lastTime.put(id, now);
return;
}
Location lastLocation = lastPos.get(id);
Long lastTimestamp = lastTime.get(id);
if (lastLocation == null || lastTimestamp == null || !lastLocation.getWorld().equals(to.getWorld())) {
lastPos.put(id, to);
lastTime.put(id, now);
return;
}
double dist = lastLocation.distance(to);
double elapsed = (now - lastTimestamp) / 1000.0;
if (elapsed <= 0.05) elapsed = 0.05;
double speed = dist / elapsed;
if (speed > MAX_SPEED) {
e.setCancelled(true);
e.getPlayer().teleport(lastLocation);
e.getPlayer().sendMessage(ChatColor.RED + "You are going " + (int) speed + "BPS! Please slow down and go below " + (int) MAX_SPEED + " BPS.");
return;
}
lastPos.put(id, to);
lastTime.put(id, now);
}
}
+3
View File
@@ -0,0 +1,3 @@
name: SpeedLimitPlugin
version: '${version}'
main: xyz.lncvrt.speedlimitplugin.SpeedLimitPlugin