From 358aa4e2dc16d56f0d6530011226a512584e0655 Mon Sep 17 00:00:00 2001 From: Ilya Date: Thu, 10 Feb 2022 19:24:28 +0300 Subject: [PATCH] Groups based piston power --- build.gradle | 1 + .../extendedpistons/ExtendedPistons.java | 21 +++++++++++++++++++ .../redguy/extendedpistons/WorldListener.java | 12 +++++++---- src/main/resources/plugin.yml | 2 ++ 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 707a655..dc74ed2 100644 --- a/build.gradle +++ b/build.gradle @@ -23,6 +23,7 @@ repositories { dependencies { compileOnly 'com.destroystokyo.paper:paper-api:1.12.2-R0.1-SNAPSHOT' compileOnly 'org.bukkit:craftbukkit:1.12.2-R0.1-20190527.155144-32' + compileOnly "com.github.MilkBowl:VaultAPI:1.7" } def targetJavaVersion = 8 diff --git a/src/main/java/ru/redguy/extendedpistons/ExtendedPistons.java b/src/main/java/ru/redguy/extendedpistons/ExtendedPistons.java index cedc5d6..056a148 100644 --- a/src/main/java/ru/redguy/extendedpistons/ExtendedPistons.java +++ b/src/main/java/ru/redguy/extendedpistons/ExtendedPistons.java @@ -1,15 +1,36 @@ package ru.redguy.extendedpistons; +import net.milkbowl.vault.permission.Permission; import org.bukkit.Bukkit; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; +import java.util.HashMap; + public final class ExtendedPistons extends JavaPlugin { public static ExtendedPistons INSTANCE; + public FileConfiguration conf; + public Permission permsService = null; + @Override public void onEnable() { INSTANCE = this; + + conf = getConfig(); + if(!conf.isSet("piston-move-limitations")) + conf.set("piston-move-limitations",new HashMap() {{ + put("default", 8); + put("vip", 12); + put("premium", 20); + }}); + saveConfig(); + + RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Permission.class); + permsService = rsp.getProvider(); + Bukkit.getPluginManager().registerEvents(new WorldListener(), this); } diff --git a/src/main/java/ru/redguy/extendedpistons/WorldListener.java b/src/main/java/ru/redguy/extendedpistons/WorldListener.java index 241503e..7920fac 100644 --- a/src/main/java/ru/redguy/extendedpistons/WorldListener.java +++ b/src/main/java/ru/redguy/extendedpistons/WorldListener.java @@ -5,6 +5,7 @@ import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.*; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -194,11 +195,14 @@ public class WorldListener implements Listener { } public int findNearbyPlayerMaxBlocks(Location location) { - Optional op = (Optional) Bukkit.getOnlinePlayers().stream().min(Comparator.comparingDouble(p -> p.getLocation().distance(location))); + Optional op = Bukkit.getOnlinePlayers().stream().min(Comparator.comparingDouble(p -> p.getLocation().distance(location))); if(op.isPresent()) { - return 20; //TODO - } else { - return 12; + String[] groups = ExtendedPistons.INSTANCE.permsService.getPlayerGroups(op.get()); + for (String group : groups) { + if(ExtendedPistons.INSTANCE.conf.isSet("piston-move-limitations."+group)&&ExtendedPistons.INSTANCE.conf.isInt("piston-move-limitations."+group)) + return ExtendedPistons.INSTANCE.conf.getInt("piston-move-limitations."+group); + } } + return 12; } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 617d12d..33b3292 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,3 +5,5 @@ prefix: Pis authors: [ Redguy ] description: Plugin for very cool pistions website: https://redguy.ru +depend: + - Vault \ No newline at end of file