package me.gnat008.perworldinventory.process;
import me.gnat008.perworldinventory.ConsoleLogger;
import me.gnat008.perworldinventory.config.PwiProperties;
import me.gnat008.perworldinventory.config.Settings;
import me.gnat008.perworldinventory.data.players.PWIPlayerManager;
import me.gnat008.perworldinventory.data.serializers.DeserializeCause;
import me.gnat008.perworldinventory.groups.Group;
import me.gnat008.perworldinventory.permission.PermissionManager;
import me.gnat008.perworldinventory.permission.PlayerPermission;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
import javax.inject.Inject;
public class GameModeChangeProcess {
@Inject
private PermissionManager permissionManager;
@Inject
private PWIPlayerManager playerManager;
@Inject
private Settings settings;
GameModeChangeProcess() {
}
/**
* Process a player's GameMode changing.
*
* @param player The player who's GameMode is changing.
* @param newGameMode The player's new GameMode.
* @param group The {@link Group} the player is in.
*/
public void processGameModeChange(Player player, GameMode newGameMode, Group group) {
if (!settings.getProperty(PwiProperties.SEPARATE_GAMEMODE_INVENTORIES)) {
return;
}
if (settings.getProperty(PwiProperties.DISABLE_BYPASS)) {
ConsoleLogger.debug("[GM PROCESS] Bypass system is disabled in the config, loading data");
playerManager.getPlayerData(group, newGameMode, player, DeserializeCause.GAMEMODE_CHANGE);
} else {
if (!permissionManager.hasPermission(player, PlayerPermission.BYPASS_GAMEMODE)) {
ConsoleLogger.debug("[GM PROCESS] Player '" + player.getName() + "' does not have GameMode bypass permission! Loading data");
playerManager.getPlayerData(group, newGameMode, player, DeserializeCause.GAMEMODE_CHANGE);
} else {
ConsoleLogger.debug("[GM PROCESS] Player '" + player.getName() + "' has GameMode bypass permission!");
}
}
}
}