Add folter_opfer group
This commit is contained in:
6
pom.xml
6
pom.xml
@@ -64,5 +64,11 @@
|
|||||||
<version>1.21.10-R0.1-SNAPSHOT</version>
|
<version>1.21.10-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.luckperms</groupId>
|
||||||
|
<artifactId>api</artifactId>
|
||||||
|
<version>5.4</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
package de.marc.folterkammer;
|
package de.marc.folterkammer;
|
||||||
|
|
||||||
|
import net.luckperms.api.context.ContextSet;
|
||||||
|
import net.luckperms.api.node.Node;
|
||||||
|
import net.luckperms.api.node.metadata.NodeMetadataKey;
|
||||||
|
import net.luckperms.api.node.types.InheritanceNode;
|
||||||
|
import net.luckperms.api.node.types.MetaNode;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@@ -10,15 +15,23 @@ import org.bukkit.configuration.ConfigurationSection;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import net.luckperms.api.LuckPerms;
|
||||||
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
|
||||||
|
import java.time.temporal.TemporalAccessor;
|
||||||
|
import java.time.temporal.TemporalAmount;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public final class folterplugin extends JavaPlugin {
|
public final class folterplugin extends JavaPlugin {
|
||||||
private Boolean enabled = true;
|
private Boolean enabled = true;
|
||||||
private String old_group;
|
private String old_group;
|
||||||
|
private LuckPerms luckperms;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
@@ -119,8 +132,27 @@ public final class folterplugin extends JavaPlugin {
|
|||||||
Location folter_spawn_loc = new Location(world, x, y, z);
|
Location folter_spawn_loc = new Location(world, x, y, z);
|
||||||
target.teleport(folter_spawn_loc);
|
target.teleport(folter_spawn_loc);
|
||||||
|
|
||||||
this.enabled = false;
|
if (this.luckperms == null) {
|
||||||
|
this.getLP();
|
||||||
|
}
|
||||||
|
|
||||||
|
UUID uuid = target.getUniqueId();
|
||||||
|
|
||||||
|
this.luckperms.getUserManager().loadUser(uuid).thenAccept(user -> {
|
||||||
|
String old_group = user.getPrimaryGroup();
|
||||||
|
|
||||||
|
Node oldGroupMeta = MetaNode.builder("old_group", old_group).build();
|
||||||
|
user.data().add(oldGroupMeta);
|
||||||
|
|
||||||
|
user.data().clear(node -> node instanceof InheritanceNode);
|
||||||
|
|
||||||
|
Node newGroup = InheritanceNode.builder("folter_opfer").build();
|
||||||
|
user.data().add(newGroup);
|
||||||
|
|
||||||
|
luckperms.getUserManager().saveUser(user);
|
||||||
|
});
|
||||||
|
|
||||||
|
target.setOp(false);
|
||||||
|
|
||||||
player.sendMessage("§aFolterkammer Befehle deaktiviert und " + player.getName() + " wurde in die Folterkammer teleportiert!");
|
player.sendMessage("§aFolterkammer Befehle deaktiviert und " + player.getName() + " wurde in die Folterkammer teleportiert!");
|
||||||
|
|
||||||
@@ -165,6 +197,43 @@ public final class folterplugin extends JavaPlugin {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "reset_group":
|
||||||
|
if (this.luckperms == null) {
|
||||||
|
this.getLP();
|
||||||
|
}
|
||||||
|
|
||||||
|
luckperms.getUserManager().getUniqueUsers().thenAccept(uuids -> {
|
||||||
|
for (UUID uuid2 : uuids) {
|
||||||
|
|
||||||
|
this.luckperms.getUserManager().loadUser(uuid2).thenAccept(user -> {
|
||||||
|
boolean isOpfer = user.getNodes().stream()
|
||||||
|
.anyMatch(node ->
|
||||||
|
node instanceof InheritanceNode &&
|
||||||
|
((InheritanceNode) node).getGroupName().equals("folter_opfer")
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!isOpfer) return;
|
||||||
|
|
||||||
|
String oldGroup = user.getCachedData()
|
||||||
|
.getMetaData()
|
||||||
|
.getMetaValue("old_group");
|
||||||
|
|
||||||
|
if (oldGroup == null) return;
|
||||||
|
|
||||||
|
user.data().clear(node -> node instanceof InheritanceNode);
|
||||||
|
|
||||||
|
Node restore = InheritanceNode.builder(oldGroup).build();
|
||||||
|
user.data().add(restore);
|
||||||
|
|
||||||
|
user.data().remove(MetaNode.builder("old_group", oldGroup).build());
|
||||||
|
|
||||||
|
luckperms.getUserManager().saveUser(user);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
player.sendMessage("§cHast du dich vielleicht vertippt??");
|
player.sendMessage("§cHast du dich vielleicht vertippt??");
|
||||||
|
|
||||||
@@ -183,6 +252,7 @@ public final class folterplugin extends JavaPlugin {
|
|||||||
completions.add("key");
|
completions.add("key");
|
||||||
completions.add("enter");
|
completions.add("enter");
|
||||||
completions.add("exit");
|
completions.add("exit");
|
||||||
|
completions.add("reset_group");
|
||||||
|
|
||||||
if (sender.hasPermission("folter.admin")) {
|
if (sender.hasPermission("folter.admin")) {
|
||||||
completions.add("enable");
|
completions.add("enable");
|
||||||
@@ -200,4 +270,17 @@ public final class folterplugin extends JavaPlugin {
|
|||||||
|
|
||||||
return completions;
|
return completions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getLP() {
|
||||||
|
RegisteredServiceProvider<LuckPerms> provider =
|
||||||
|
getServer().getServicesManager().getRegistration(LuckPerms.class);
|
||||||
|
|
||||||
|
if (provider == null) {
|
||||||
|
getLogger().severe("LuckPerms nicht gefunden!");
|
||||||
|
getServer().getPluginManager().disablePlugin(this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.luckperms = provider.getProvider();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ version: '1.0-SNAPSHOT'
|
|||||||
main: de.marc.folterkammer.folterplugin
|
main: de.marc.folterkammer.folterplugin
|
||||||
api-version: '1.21'
|
api-version: '1.21'
|
||||||
|
|
||||||
|
depend: [LuckPerms]
|
||||||
|
|
||||||
commands:
|
commands:
|
||||||
folterkammer:
|
folterkammer:
|
||||||
description: Folterkammer Befehl
|
description: Folterkammer Befehl
|
||||||
|
|||||||
Reference in New Issue
Block a user