This commit is contained in:
dordsor21
2021-08-25 16:19:51 +01:00
parent 4050cf238f
commit da8289f8ba
2 changed files with 42 additions and 5 deletions

View File

@ -21,6 +21,7 @@
package com.sk89q.worldedit.bukkit;
import com.sk89q.worldedit.LocalSession;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.entity.Player;
import com.sk89q.worldedit.event.platform.SessionIdleEvent;
@ -37,6 +38,7 @@ import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerCommandSendEvent;
import org.bukkit.event.player.PlayerGameModeChangeEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.enginehub.piston.CommandManager;
@ -68,10 +70,29 @@ public class WorldEditListener implements Listener {
return;
}
// this will automatically refresh their session, we don't have to do anything
WorldEdit.getInstance().getSessionManager().get(plugin.wrapPlayer(event.getPlayer()));
//FAWE start - correctly handle refreshing LocalSession
Player player = plugin.wrapPlayer(event.getPlayer());
LocalSession session;
if ((session = WorldEdit.getInstance().getSessionManager().getIfPresent(player)) == null) {
session = WorldEdit.getInstance().getSessionManager().get(player);
}
session.loadDefaults(player, true);
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onJoin(PlayerJoinEvent event) {
if (!plugin.getInternalPlatform().isHookingEvents()) {
return;
}
Player player = plugin.wrapPlayer(event.getPlayer());
LocalSession session;
if ((session = WorldEdit.getInstance().getSessionManager().getIfPresent(player)) != null) {
session.loadDefaults(player, true);
}
}
//FAWE end
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerCommandSend(PlayerCommandSendEvent event) {
InjectedValueStore store = MapBackedValueStore.create();