|
package me.cain.cfbanner; |
|
|
|
import com.nijiko.permissions.PermissionHandler; |
|
import com.nijikokun.bukkit.Permissions.Permissions; |
|
import org.bukkit.ChatColor; |
|
import org.bukkit.entity.Player; |
|
import org.bukkit.event.Event; |
|
import org.bukkit.event.player.PlayerJoinEvent; |
|
import org.bukkit.event.player.PlayerListener; |
|
import org.bukkit.plugin.Plugin; |
|
import org.bukkit.plugin.PluginDescriptionFile; |
|
import org.bukkit.plugin.PluginManager; |
|
import org.bukkit.plugin.java.JavaPlugin; |
|
|
|
import java.util.logging.Logger; |
|
|
|
/** |
|
* Created by IntelliJ IDEA. |
|
* |
|
* @author Cain, Edoxile |
|
*/ |
|
public class CFBanner extends JavaPlugin { |
|
private static Logger log = Logger.getLogger("Minecraft"); |
|
private static PermissionHandler permissionHandler; |
|
private static String noFlyFingerprint = "§f §f §1 §0 §2 §4 §3 §9 §2 §0 §0 §1 "; |
|
private static String noCheatFingerprint = "§f §f §2 §0 §4 §8 §3 §9 §2 §0 §0 §2 §3 §9 §2 §0 §0 §3 "; |
|
private PluginDescriptionFile pdf = this.getDescription(); |
|
|
|
public void onEnable() { |
|
PluginManager pm = getServer().getPluginManager(); |
|
log.info("[" + pdf.getName() + "] Enabled! Version: " + pdf.getVersion()); |
|
setupPerms(); |
|
pm.registerEvent(Event.Type.PLAYER_JOIN, new CFListener(this), Event.Priority.Normal, this); |
|
} |
|
|
|
public void onDisable() { |
|
log.info("[" + pdf.getName() + "] Disabled!"); |
|
} |
|
|
|
private void setupPerms() { |
|
Plugin permissionsPlugin = getServer().getPluginManager().getPlugin("Permissions"); |
|
if (permissionsPlugin == null) { |
|
log.info("[" + pdf.getName() + "] Permissions not detected. Defaulting to OP!"); |
|
return; |
|
} |
|
permissionHandler = ((Permissions) permissionsPlugin).getHandler(); |
|
} |
|
|
|
public boolean permCheck(String node, Player player) { |
|
if (permissionHandler == null) |
|
return player.isOp(); |
|
else |
|
return player.isOp() || permissionHandler.has(player, "cf." + node); |
|
} |
|
|
|
private class CFListener extends PlayerListener { |
|
private CFBanner plugin; |
|
|
|
public CFListener(CFBanner instance) { |
|
plugin = instance; |
|
} |
|
|
|
public void onPlayerJoin(PlayerJoinEvent event) { |
|
Player player = event.getPlayer(); |
|
if (!plugin.permCheck("allowfly", player)) { |
|
player.sendMessage(CFBanner.noFlyFingerprint); |
|
} else { |
|
if (plugin.permCheck("display", player)) { |
|
player.sendMessage(ChatColor.GREEN + "[" + pdf.getName() + "] " + ChatColor.WHITE + "You're allowed to fly!"); |
|
} |
|
} |
|
|
|
if (!plugin.permCheck("allowcheat", player)) { |
|
player.sendMessage(CFBanner.noCheatFingerprint); |
|
} else { |
|
if (plugin.permCheck("display", player)) { |
|
player.sendMessage(ChatColor.GREEN + "[" + pdf.getName() + "] " + ChatColor.WHITE + "You're allowed to cheat!"); |
|
} |
|
|
|
if (!plugin.permCheck("allowfly", player) && !plugin.permCheck("allowcheat", player) && plugin.permCheck("display", player)) |
|
player.sendMessage(ChatColor.DARK_RED + "CFBanner has stopped you from using mods."); |
|
} |
|
} |
|
} |
|
} |