mirror of
https://github.com/TotalFreedomMC/TF-WorldGuardExtraFlagsPlugin.git
synced 2024-06-03 10:21:19 +00:00
7d12cdb0e1
This fixes the error given when using unsupported version of WG and gives message saying that you are using unsupported version of WG instead
85 lines
2.4 KiB
Java
85 lines
2.4 KiB
Java
package net.goldtreeservers.worldguardextraflags.wg.handlers;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
import java.util.Set;
|
|
|
|
import org.bukkit.Location;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
import com.sk89q.worldguard.protection.ApplicableRegionSet;
|
|
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
|
|
import com.sk89q.worldguard.session.MoveType;
|
|
import com.sk89q.worldguard.session.Session;
|
|
|
|
import net.goldtreeservers.worldguardextraflags.flags.Flags;
|
|
import net.goldtreeservers.worldguardextraflags.wg.WorldGuardUtils;
|
|
import net.goldtreeservers.worldguardextraflags.wg.wrappers.HandlerWrapper;
|
|
|
|
public class CommandOnEntryFlagHandler extends HandlerWrapper
|
|
{
|
|
public static final Factory FACTORY(Plugin plugin)
|
|
{
|
|
return new Factory(plugin);
|
|
}
|
|
|
|
public static class Factory extends HandlerWrapper.Factory<CommandOnEntryFlagHandler>
|
|
{
|
|
public Factory(Plugin plugin)
|
|
{
|
|
super(plugin);
|
|
}
|
|
|
|
@Override
|
|
public CommandOnEntryFlagHandler create(Session session)
|
|
{
|
|
return new CommandOnEntryFlagHandler(this.getPlugin(), session);
|
|
}
|
|
}
|
|
|
|
private Collection<Set<String>> lastCommands;
|
|
|
|
protected CommandOnEntryFlagHandler(Plugin plugin, Session session)
|
|
{
|
|
super(plugin, session);
|
|
|
|
this.lastCommands = new ArrayList<>();
|
|
}
|
|
|
|
@Override
|
|
public boolean onCrossBoundary(Player player, Location from, Location to, ApplicableRegionSet toSet, Set<ProtectedRegion> entered, Set<ProtectedRegion> exited, MoveType moveType)
|
|
{
|
|
Collection<Set<String>> commands = WorldGuardUtils.queryAllValues(player, to.getWorld(), toSet.getRegions(), Flags.COMMAND_ON_ENTRY);
|
|
|
|
for(Set<String> commands_ : commands)
|
|
{
|
|
if (!this.lastCommands.contains(commands_) && commands_.size() > 0)
|
|
{
|
|
for(String command : commands_)
|
|
{
|
|
this.getPlugin().getServer().dispatchCommand(player, command.substring(1).replace("%username%", player.getName())); //TODO: Make this better
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
this.lastCommands = new ArrayList<Set<String>>(commands);
|
|
|
|
if (!this.lastCommands.isEmpty())
|
|
{
|
|
for (ProtectedRegion region : toSet)
|
|
{
|
|
Set<String> commands_ = region.getFlag(Flags.COMMAND_ON_ENTRY);
|
|
if (commands_ != null)
|
|
{
|
|
this.lastCommands.add(commands_);
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|