Whitelist player->player interacts.

As noted before, any more specific events should still be blocked (such
as potion use).
This commit is contained in:
wizjany 2019-07-23 20:13:12 -04:00
parent b0e4cf148b
commit f37acd3de6
2 changed files with 2 additions and 6 deletions

View File

@ -419,7 +419,7 @@ public void onUseEntity(UseEntityEvent event) {
final Entity entity = event.getEntity();
final EntityType type = entity.getType();
if (Entities.isHostile(entity) || Entities.isAmbient(entity)
|| Entities.isNPC(entity)) {
|| Entities.isNPC(entity) || entity instanceof Player) {
canUse = event.getRelevantFlags().isEmpty() || query.queryState(BukkitAdapter.adapt(target), associable, combine(event)) != State.DENY;
what = "use that";
/* Paintings, item frames, etc. */
@ -440,10 +440,6 @@ public void onUseEntity(UseEntityEvent event) {
canUse = query.testBuild(BukkitAdapter.adapt(target), associable, combine(event, Flags.RIDE, Flags.INTERACT));
what = "ride that";
} else if (entity instanceof Player && event.getCause().getRootCause() instanceof Player) {
canUse = query.testBuild(BukkitAdapter.adapt(target), associable, combine(event, Flags.INTERACT, Flags.PVP));
what = "use that";
/* Everything else */
} else {
canUse = query.testBuild(BukkitAdapter.adapt(target), associable, combine(event, Flags.INTERACT));

View File

@ -302,7 +302,7 @@ public void appendBounds() {
}
builder.append(bound);
final Location teleFlag = region.getFlag(Flags.TELE_LOC);
if (perms != null && perms.mayTeleportTo(region) && teleFlag != null) {
if (teleFlag != null && perms != null && perms.mayTeleportTo(region)) {
builder.append(TextComponent.space().append(TextComponent.of("[Teleport]", TextColor.GRAY)
.hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT,
TextComponent.of("Click to teleport").append(TextComponent.newline()).append(