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>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.luckperms</groupId>
|
||||
<artifactId>api</artifactId>
|
||||
<version>5.4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
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.Location;
|
||||
import org.bukkit.Material;
|
||||
@@ -10,15 +15,23 @@ import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
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.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public final class folterplugin extends JavaPlugin {
|
||||
private Boolean enabled = true;
|
||||
private String old_group;
|
||||
private LuckPerms luckperms;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
@@ -119,8 +132,27 @@ public final class folterplugin extends JavaPlugin {
|
||||
Location folter_spawn_loc = new Location(world, x, y, z);
|
||||
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!");
|
||||
|
||||
@@ -165,6 +197,43 @@ public final class folterplugin extends JavaPlugin {
|
||||
|
||||
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:
|
||||
player.sendMessage("§cHast du dich vielleicht vertippt??");
|
||||
|
||||
@@ -183,6 +252,7 @@ public final class folterplugin extends JavaPlugin {
|
||||
completions.add("key");
|
||||
completions.add("enter");
|
||||
completions.add("exit");
|
||||
completions.add("reset_group");
|
||||
|
||||
if (sender.hasPermission("folter.admin")) {
|
||||
completions.add("enable");
|
||||
@@ -200,4 +270,17 @@ public final class folterplugin extends JavaPlugin {
|
||||
|
||||
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
|
||||
api-version: '1.21'
|
||||
|
||||
depend: [LuckPerms]
|
||||
|
||||
commands:
|
||||
folterkammer:
|
||||
description: Folterkammer Befehl
|
||||
|
||||
Reference in New Issue
Block a user