Add in op stuff

This commit is contained in:
Bjorn Beishline 2026-01-30 15:21:29 -07:00
parent 23337fb600
commit ce8c8855f1
2 changed files with 60 additions and 0 deletions

View File

@ -36,6 +36,8 @@ import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.InventoryView.Property;
import org.bukkit.permissions.PermissibleBase;
import org.bukkit.permissions.Permission;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.MainHand;
import org.bukkit.inventory.Merchant;
@ -61,12 +63,45 @@ import net.kyori.adventure.util.TriState;
public class PatchBukkitHumanEntity
extends PatchBukkitLivingEntity
implements HumanEntity {
private boolean op;
protected final PermissibleBase perm = new PermissibleBase(this);
public PatchBukkitHumanEntity(UUID uuid,
String name) {
super(uuid, name);
}
@Override
public boolean isOp() {
return this.op;
}
@Override
public void setOp(boolean value) {
this.op = value;
this.perm.recalculatePermissions();
}
@Override
public boolean isPermissionSet(String name) {
return this.perm.isPermissionSet(name);
}
@Override
public boolean isPermissionSet(Permission perm) {
return this.perm.isPermissionSet(perm);
}
@Override
public boolean hasPermission(String name) {
return this.perm.hasPermission(name);
}
@Override
public boolean hasPermission(Permission perm) {
return this.perm.hasPermission(perm);
}
@Override
public double getEyeHeight() {
// TODO Auto-generated method stub

View File

@ -188,6 +188,31 @@ impl JvmWorker {
)
.map_err(|e| format!("Failed to create player instance: {}", e))
.unwrap();
let player_permission_level = player.permission_lvl.load();
if player_permission_level
>= self
.context
.as_ref()
.unwrap()
.server
.basic_config
.op_permission_level
{
jvm.invoke(
&j_player,
"setOp",
&[InvocationArg::try_from(true)
.unwrap()
.into_primitive()
.unwrap()],
)
.map_err(|e| {
format!("Failed to give operator status to new player: {}", e)
})
.unwrap();
};
let patch_server = jvm
.cast(&server_instance, "org.patchbukkit.PatchBukkitServer")
.unwrap();