package pluginbase.bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import pluginbase.bukkit.minecraft.BukkitTools;
import pluginbase.minecraft.BasePlayer;
import pluginbase.plugin.ServerInterface;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
class BukkitServerInterface implements ServerInterface {
private final Plugin plugin;
private final File serverFolder;
BukkitServerInterface(@NotNull final Plugin plugin) {
this.plugin = plugin;
this.serverFolder = new File(".");
}
/** {@inheritDoc} */
@NotNull
@Override
public String getName() {
return plugin.getServer().getName();
}
/** {@inheritDoc} */
@NotNull
@Override
public String getVersion() {
return plugin.getServer().getVersion();
}
/** {@inheritDoc} */
@NotNull
@Override
public File getWorldContainer() {
return plugin.getServer().getWorldContainer();
}
/** {@inheritDoc} */
@NotNull
@Override
public File getServerFolder() {
return serverFolder;
}
/** {@inheritDoc} */
@Nullable
@Override
public BasePlayer getPlayer(final @NotNull String name) {
Player player = plugin.getServer().getPlayer(name);
return player == null ? null : BukkitTools.wrapPlayer(player);
}
/** {@inheritDoc} */
@Override
public int runTask(@NotNull final Runnable runnable) {
return plugin.getServer().getScheduler().runTask(plugin, runnable).getTaskId();
}
/** {@inheritDoc} */
@Override
public int runTaskAsynchronously(@NotNull final Runnable runnable) {
return plugin.getServer().getScheduler().runTaskAsynchronously(plugin, runnable).getTaskId();
}
/** {@inheritDoc} */
@Override
public int runTaskLater(@NotNull final Runnable runnable, final long delay) {
return plugin.getServer().getScheduler().runTaskLater(plugin, runnable, delay).getTaskId();
}
/** {@inheritDoc} */
@Override
public int runTaskLaterAsynchronously(@NotNull final Runnable runnable, final long delay) {
return plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, runnable, delay).getTaskId();
}
/** {@inheritDoc} */
@Override
public int runTaskTimer(@NotNull final Runnable runnable, final long delay, final long period) {
return plugin.getServer().getScheduler().runTaskTimer(plugin, runnable, delay, period).getTaskId();
}
/** {@inheritDoc} */
@Override
public int runTaskTimerAsynchronously(@NotNull final Runnable runnable, final long delay, final long period) {
return plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, runnable, delay, period).getTaskId();
}
@Override
public void cancelTask(int taskId) {
plugin.getServer().getScheduler().cancelTask(taskId);
}
}