First commit.
This commit is contained in:
parent
85b02ebe91
commit
c9dfa4e8bc
105
src/nl/Steffion/BlockHunt/BlockHunt.java
Normal file
105
src/nl/Steffion/BlockHunt/BlockHunt.java
Normal file
@ -0,0 +1,105 @@
|
||||
package nl.Steffion.BlockHunt;
|
||||
|
||||
import nl.Steffion.BlockHunt.Managers.CommandC;
|
||||
import nl.Steffion.BlockHunt.Managers.ConfigC;
|
||||
import nl.Steffion.BlockHunt.Managers.MessageM;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public class BlockHunt extends JavaPlugin implements Listener {
|
||||
/*
|
||||
* Made by @author Steffion, © 2013.
|
||||
*/
|
||||
|
||||
public void onEnable() {
|
||||
W.newFiles();
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
MessageM.sendFMessage(null, ConfigC.log_Enabled, true, "name-"
|
||||
+ W.pluginName, "version-" + W.pluginVersion, "autors-"
|
||||
+ W.pluginAutors);
|
||||
}
|
||||
|
||||
public void onDisable() {
|
||||
MessageM.sendFMessage(null, ConfigC.log_Disabled, true, "name-"
|
||||
+ W.pluginName, "version-" + W.pluginVersion, "autors-"
|
||||
+ W.pluginAutors);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a string.
|
||||
*
|
||||
* @param input
|
||||
* @param startArg
|
||||
* @return
|
||||
*/
|
||||
public static String argsBuild(String[] input, int startArg) {
|
||||
if (input.length - startArg <= 0) {
|
||||
return null;
|
||||
}
|
||||
StringBuilder sb = new StringBuilder(input[startArg]);
|
||||
for (int i = ++startArg; i < input.length; i++) {
|
||||
sb.append(' ').append(input[i]);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label,
|
||||
String[] args) {
|
||||
Player player = null;
|
||||
if (sender instanceof Player) {
|
||||
player = (Player) sender;
|
||||
}
|
||||
|
||||
for (CommandC command : CommandC.values()) {
|
||||
String[] commandArgsSplit = command.command.split("%");
|
||||
String[] argsSplit = commandArgsSplit[1].split("_");
|
||||
String[] argsSplitAlias = command.alias.split("%")[1].split("_");
|
||||
|
||||
if (cmd.getName().equalsIgnoreCase(commandArgsSplit[0])) {
|
||||
int i = 0;
|
||||
boolean equals = true;
|
||||
|
||||
if (command.minLenght == 0) {
|
||||
if (args.length == 0) {
|
||||
equals = true;
|
||||
} else {
|
||||
equals = false;
|
||||
}
|
||||
} else {
|
||||
if (args.length >= command.minLenght) {
|
||||
for (String arg : argsSplit) {
|
||||
for (String arga : argsSplitAlias) {
|
||||
if (!arg.equalsIgnoreCase(args[i])
|
||||
&& !arga.equalsIgnoreCase(args[i])) {
|
||||
equals = false;
|
||||
}
|
||||
i = i + 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
equals = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (equals) {
|
||||
if (W.config.getFile().getBoolean(
|
||||
command.enabled.getLocation())) {
|
||||
command.cmd.exectue(player, cmd, label, args);
|
||||
} else {
|
||||
MessageM.sendFMessage(player,
|
||||
ConfigC.error_commandNotEnabled, true);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
CommandC.NOT_FOUND.cmd.exectue(player, cmd, label, args);
|
||||
return true;
|
||||
}
|
||||
}
|
125
src/nl/Steffion/BlockHunt/Commands/CMDhelp.java
Normal file
125
src/nl/Steffion/BlockHunt/Commands/CMDhelp.java
Normal file
@ -0,0 +1,125 @@
|
||||
package nl.Steffion.BlockHunt.Commands;
|
||||
|
||||
import nl.Steffion.BlockHunt.W;
|
||||
import nl.Steffion.BlockHunt.Managers.CommandC;
|
||||
import nl.Steffion.BlockHunt.Managers.ConfigC;
|
||||
import nl.Steffion.BlockHunt.Managers.MessageM;
|
||||
import nl.Steffion.BlockHunt.Managers.PlayerM;
|
||||
import nl.Steffion.BlockHunt.Managers.PlayerM.PermsC;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CMDhelp extends DefaultCMD {
|
||||
|
||||
@Override
|
||||
public boolean exectue(Player player, Command cmd, String label,
|
||||
String[] args) {
|
||||
if (PlayerM.hasPerm(player, PermsC.help, true)) {
|
||||
int amountCommands = 0;
|
||||
for (CommandC command : CommandC.values()) {
|
||||
if (command.usage != "-") {
|
||||
amountCommands = amountCommands + 1;
|
||||
}
|
||||
}
|
||||
|
||||
int maxPages = Math.round(amountCommands / 3);
|
||||
if (maxPages <= 0) {
|
||||
maxPages = 1;
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
int page = 1;
|
||||
MessageM.sendFMessage(player, ConfigC.chat_headerhigh, false,
|
||||
"header-" + W.pluginName + " %Nhelp page %A" + page
|
||||
+ "%N/%A" + maxPages);
|
||||
int i = 1;
|
||||
for (CommandC command : CommandC.values()) {
|
||||
if (i <= 4) {
|
||||
if (command.usage != "-") {
|
||||
if (PlayerM.hasPerm(player, command.perm, false)) {
|
||||
MessageM.sendMessage(
|
||||
player,
|
||||
"%A/"
|
||||
+ command.usage
|
||||
+ "%N - "
|
||||
+ W.messages.getFile().get(
|
||||
command.help
|
||||
.getLocation()),
|
||||
false);
|
||||
} else {
|
||||
MessageM.sendMessage(
|
||||
player,
|
||||
"%W/"
|
||||
+ command.usage
|
||||
+ "%N - "
|
||||
+ W.messages.getFile().get(
|
||||
command.help
|
||||
.getLocation()),
|
||||
false);
|
||||
}
|
||||
i = i + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MessageM.sendFMessage(player, ConfigC.chat_headerhigh, false,
|
||||
"header-&oHelp Page");
|
||||
} else {
|
||||
int page = 1;
|
||||
try {
|
||||
page = Integer.valueOf(args[1]);
|
||||
} catch (NumberFormatException e) {
|
||||
page = 1;
|
||||
}
|
||||
|
||||
if (maxPages < page) {
|
||||
maxPages = page;
|
||||
}
|
||||
|
||||
MessageM.sendFMessage(player, ConfigC.chat_headerhigh, false,
|
||||
"header-" + W.pluginName + " %Nhelp page %A" + page
|
||||
+ "%N/%A" + maxPages);
|
||||
int i = 1;
|
||||
for (CommandC command : CommandC.values()) {
|
||||
if (i <= (page * 4) + 4) {
|
||||
if (command.usage != "-") {
|
||||
if (i >= ((page - 1) * 4) + 1
|
||||
&& i <= ((page - 1) * 4) + 4) {
|
||||
if (PlayerM
|
||||
.hasPerm(player, command.perm, false)) {
|
||||
MessageM.sendMessage(
|
||||
player,
|
||||
"%A/"
|
||||
+ command.usage
|
||||
+ "%N - "
|
||||
+ W.messages
|
||||
.getFile()
|
||||
.get(command.help
|
||||
.getLocation()),
|
||||
false);
|
||||
} else {
|
||||
MessageM.sendMessage(
|
||||
player,
|
||||
"%W/"
|
||||
+ command.usage
|
||||
+ "%N - "
|
||||
+ W.messages
|
||||
.getFile()
|
||||
.get(command.help
|
||||
.getLocation()),
|
||||
false);
|
||||
}
|
||||
}
|
||||
i = i + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MessageM.sendFMessage(player, ConfigC.chat_headerhigh, false,
|
||||
"header-&oHelp Page");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
32
src/nl/Steffion/BlockHunt/Commands/CMDinfo.java
Normal file
32
src/nl/Steffion/BlockHunt/Commands/CMDinfo.java
Normal file
@ -0,0 +1,32 @@
|
||||
package nl.Steffion.BlockHunt.Commands;
|
||||
|
||||
import nl.Steffion.BlockHunt.W;
|
||||
import nl.Steffion.BlockHunt.Managers.CommandC;
|
||||
import nl.Steffion.BlockHunt.Managers.ConfigC;
|
||||
import nl.Steffion.BlockHunt.Managers.MessageM;
|
||||
import nl.Steffion.BlockHunt.Managers.PlayerM;
|
||||
import nl.Steffion.BlockHunt.Managers.PlayerM.PermsC;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CMDinfo extends DefaultCMD {
|
||||
|
||||
@Override
|
||||
public boolean exectue(Player player, Command cmd, String label,
|
||||
String[] args) {
|
||||
if (PlayerM.hasPerm(player, PermsC.info, true)) {
|
||||
MessageM.sendFMessage(player, ConfigC.chat_headerhigh, false,
|
||||
"header-" + W.pluginName);
|
||||
MessageM.sendMessage(player, "%A%name%%N made by %A%autors%%N.",
|
||||
false, "name-" + W.pluginName, "autors-" + W.pluginAutors);
|
||||
MessageM.sendMessage(player, "%NVersion: %A%version%%N.", false,
|
||||
"version-" + W.pluginVersion);
|
||||
MessageM.sendMessage(player, "%NType %A/%helpusage% %Nfor help.",
|
||||
false, "helpusage-" + CommandC.HELP.usage);
|
||||
MessageM.sendFMessage(player, ConfigC.chat_headerhigh, false,
|
||||
"header-&oInfo Page");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
16
src/nl/Steffion/BlockHunt/Commands/CMDnotfound.java
Normal file
16
src/nl/Steffion/BlockHunt/Commands/CMDnotfound.java
Normal file
@ -0,0 +1,16 @@
|
||||
package nl.Steffion.BlockHunt.Commands;
|
||||
|
||||
import nl.Steffion.BlockHunt.Managers.ConfigC;
|
||||
import nl.Steffion.BlockHunt.Managers.MessageM;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CMDnotfound extends DefaultCMD {
|
||||
@Override
|
||||
public boolean exectue(Player player, Command cmd, String label,
|
||||
String[] args) {
|
||||
MessageM.sendFMessage(player, ConfigC.error_commandNotFound, true);
|
||||
return true;
|
||||
}
|
||||
}
|
25
src/nl/Steffion/BlockHunt/Commands/CMDreload.java
Normal file
25
src/nl/Steffion/BlockHunt/Commands/CMDreload.java
Normal file
@ -0,0 +1,25 @@
|
||||
package nl.Steffion.BlockHunt.Commands;
|
||||
|
||||
import nl.Steffion.BlockHunt.W;
|
||||
import nl.Steffion.BlockHunt.Managers.ConfigC;
|
||||
import nl.Steffion.BlockHunt.Managers.MessageM;
|
||||
import nl.Steffion.BlockHunt.Managers.PlayerM;
|
||||
import nl.Steffion.BlockHunt.Managers.PlayerM.PermsC;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class CMDreload extends DefaultCMD {
|
||||
|
||||
@Override
|
||||
public boolean exectue(Player player, Command cmd, String label,
|
||||
String[] args) {
|
||||
if (PlayerM.hasPerm(player, PermsC.reload, true)) {
|
||||
W.config.load();
|
||||
W.messages.load();
|
||||
W.newFiles();
|
||||
MessageM.sendFMessage(player, ConfigC.normal_reloadedConfigs, true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
16
src/nl/Steffion/BlockHunt/Commands/DefaultCMD.java
Normal file
16
src/nl/Steffion/BlockHunt/Commands/DefaultCMD.java
Normal file
@ -0,0 +1,16 @@
|
||||
package nl.Steffion.BlockHunt.Commands;
|
||||
|
||||
import nl.Steffion.BlockHunt.Managers.MessageM;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class DefaultCMD {
|
||||
|
||||
public boolean exectue(Player player, Command cmd, String label,
|
||||
String[] args) {
|
||||
MessageM.sendMessage(player, "%NExample of a Command!", true);
|
||||
//TODO Place the command stuff here.
|
||||
return true;
|
||||
}
|
||||
}
|
75
src/nl/Steffion/BlockHunt/Managers/CommandC.java
Normal file
75
src/nl/Steffion/BlockHunt/Managers/CommandC.java
Normal file
@ -0,0 +1,75 @@
|
||||
package nl.Steffion.BlockHunt.Managers;
|
||||
|
||||
import nl.Steffion.BlockHunt.W;
|
||||
import nl.Steffion.BlockHunt.Commands.*;
|
||||
import nl.Steffion.BlockHunt.Managers.PlayerM.PermsC;
|
||||
|
||||
public enum CommandC {
|
||||
/*
|
||||
* Made by @author Steffion, © 2013.
|
||||
*/
|
||||
|
||||
INFO ("SteffionDefault%_",
|
||||
"SteffionDefault%_",
|
||||
new CMDinfo(),
|
||||
ConfigC.commandEnabled_info,
|
||||
PermsC.info,
|
||||
ConfigC.help_info,
|
||||
0,
|
||||
"-"),
|
||||
INFO2 ("SteffionDefault%info_",
|
||||
"SteffionDefault%i_",
|
||||
new CMDinfo(),
|
||||
ConfigC.commandEnabled_info,
|
||||
PermsC.info,
|
||||
ConfigC.help_info,
|
||||
1,
|
||||
W.pluginName + " [info|i]"),
|
||||
HELP ("SteffionDefault%help_",
|
||||
"SteffionDefault%h_",
|
||||
new CMDhelp(),
|
||||
|
||||
ConfigC.commandEnabled_help,
|
||||
PermsC.help,
|
||||
ConfigC.help_help,
|
||||
1,
|
||||
W.pluginName + " <help|h> [pagenumber]"),
|
||||
RELOAD ("SteffionDefault%reload_",
|
||||
"SteffionDefault%r_",
|
||||
new CMDreload(),
|
||||
ConfigC.commandEnabled_reload,
|
||||
PermsC.reload,
|
||||
ConfigC.help_reload,
|
||||
1,
|
||||
W.pluginName + " <reload|r>"),
|
||||
NOT_FOUND ("%_",
|
||||
"%_",
|
||||
new CMDnotfound(),
|
||||
null,
|
||||
PermsC.info,
|
||||
ConfigC.help_info,
|
||||
0,
|
||||
"-");
|
||||
|
||||
public String command;
|
||||
public String alias;
|
||||
public DefaultCMD cmd;
|
||||
public ConfigC enabled;
|
||||
public PermsC perm;
|
||||
public ConfigC help;
|
||||
public int minLenght;
|
||||
public String usage;
|
||||
|
||||
private CommandC (String command, String alias, DefaultCMD cmd,
|
||||
ConfigC enabled, PermsC perm, ConfigC help, int minLenght,
|
||||
String usage) {
|
||||
this.command = command;
|
||||
this.alias = alias;
|
||||
this.cmd = cmd;
|
||||
this.enabled = enabled;
|
||||
this.perm = perm;
|
||||
this.help = help;
|
||||
this.minLenght = minLenght;
|
||||
this.usage = usage;
|
||||
}
|
||||
}
|
53
src/nl/Steffion/BlockHunt/Managers/ConfigC.java
Normal file
53
src/nl/Steffion/BlockHunt/Managers/ConfigC.java
Normal file
@ -0,0 +1,53 @@
|
||||
package nl.Steffion.BlockHunt.Managers;
|
||||
|
||||
import nl.Steffion.BlockHunt.W;
|
||||
|
||||
public enum ConfigC {
|
||||
/*
|
||||
* Made by @author Steffion, © 2013.
|
||||
*/
|
||||
|
||||
chat_tag ("[" + W.pluginName + "] ", W.config),
|
||||
chat_normal ("&b", W.config),
|
||||
chat_warning ("&c", W.config),
|
||||
chat_error ("&c", W.config),
|
||||
chat_arg ("&e", W.config),
|
||||
chat_header ("&9", W.config),
|
||||
chat_headerhigh ("%H_______.[ %A%header%%H ]._______", W.config),
|
||||
|
||||
commandEnabled_info (true, W.config),
|
||||
commandEnabled_help (true, W.config),
|
||||
commandEnabled_reload (true, W.config),
|
||||
|
||||
log_Enabled ("%N%name%&a&k + %N%version% is now Enabled. Made by %A%autors%%N.",
|
||||
W.messages),
|
||||
log_Disabled ("%N%name%&c&k - %N%version% is now Disabled. Made by %A%autors%%N.",
|
||||
W.messages),
|
||||
|
||||
help_info ("%NDisplays the plugin's info.", W.messages),
|
||||
help_help ("%NShows a list of commands.", W.messages),
|
||||
help_reload ("%NReloads all configs.", W.messages),
|
||||
|
||||
normal_reloadedConfigs ("&aReloaded all configs!", W.messages),
|
||||
|
||||
error_noPermission ("%EYou don't have the permissions to do that!",
|
||||
W.messages),
|
||||
error_commandNotEnabled ("%EThis command has been disabled!", W.messages),
|
||||
error_commandNotFound ("%ECouldn't find the command. Try %A/"
|
||||
+ W.pluginName + " help %Efor more info.", W.messages),
|
||||
error_notEnoughArguments ("%EYou're missing arguments, correct syntax: %A/%syntax%",
|
||||
W.messages);
|
||||
|
||||
Object value;
|
||||
ConfigM config;
|
||||
|
||||
private ConfigC (Object value, ConfigM config) {
|
||||
this.value = value;
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public String getLocation() {
|
||||
return this.name().replaceAll("_", ".");
|
||||
|
||||
}
|
||||
}
|
103
src/nl/Steffion/BlockHunt/Managers/ConfigM.java
Normal file
103
src/nl/Steffion/BlockHunt/Managers/ConfigM.java
Normal file
@ -0,0 +1,103 @@
|
||||
package nl.Steffion.BlockHunt.Managers;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import nl.Steffion.BlockHunt.W;
|
||||
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
public class ConfigM {
|
||||
/*
|
||||
* Made by @author Steffion, © 2013.
|
||||
*/
|
||||
|
||||
String fileName;
|
||||
File file;
|
||||
FileConfiguration fileC;
|
||||
ConfigurationSection fileCS;
|
||||
String location;
|
||||
|
||||
public ConfigM (String fileName, String location) {
|
||||
this.fileName = fileName;
|
||||
this.file = new File("plugins/" + W.pluginName + "/" + location, fileName
|
||||
+ ".yml");
|
||||
this.location = W.pluginName + "/" + location;
|
||||
|
||||
this.fileC = new YamlConfiguration();
|
||||
this.checkFile();
|
||||
this.fileCS = fileC.getConfigurationSection("");
|
||||
this.load();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if file exists, if not create one.
|
||||
*/
|
||||
public void checkFile() {
|
||||
if (!this.file.exists()) {
|
||||
try {
|
||||
this.file.getParentFile().mkdirs();
|
||||
this.file.createNewFile();
|
||||
W.newFiles.add(this.location + this.fileName);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the file.
|
||||
*/
|
||||
public void save() {
|
||||
try {
|
||||
this.fileC.save(this.file);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the file.
|
||||
*/
|
||||
public void load() {
|
||||
this.checkFile();
|
||||
if (this.file.exists()) {
|
||||
try {
|
||||
this.fileC.load(this.file);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add variables to the files if they don't exist.
|
||||
*/
|
||||
public static void setDefaults() {
|
||||
for (ConfigC value : ConfigC.values()) {
|
||||
value.config.load();
|
||||
String location = value.getLocation();
|
||||
if (value.config.getFile().get(location) == null) {
|
||||
value.config.getFile().set(location, value.value);
|
||||
value.config.save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the File.
|
||||
*/
|
||||
public FileConfiguration getFile() {
|
||||
return this.fileC;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get object from a Config.
|
||||
* @param location
|
||||
* @return
|
||||
*/
|
||||
public Object get(ConfigC location) {
|
||||
return this.getFile().get(location.getLocation());
|
||||
}
|
||||
}
|
69
src/nl/Steffion/BlockHunt/Managers/FileM.java
Normal file
69
src/nl/Steffion/BlockHunt/Managers/FileM.java
Normal file
@ -0,0 +1,69 @@
|
||||
package nl.Steffion.BlockHunt.Managers;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
public class FileM {
|
||||
/*
|
||||
* Made by @author Steffion, © 2013.
|
||||
*/
|
||||
|
||||
public static void copyFolder(File src, File dest) throws IOException {
|
||||
if (src.isDirectory()) {
|
||||
if (!dest.exists()) {
|
||||
dest.mkdir();
|
||||
// Bukkit.broadcastMessage("Directory copied from " + src
|
||||
// + " to " + dest);
|
||||
}
|
||||
String files[] = src.list();
|
||||
|
||||
for (String file : files) {
|
||||
File srcFile = new File(src, file);
|
||||
File destFile = new File(dest, file);
|
||||
copyFolder(srcFile, destFile);
|
||||
}
|
||||
|
||||
} else {
|
||||
InputStream in = new FileInputStream(src);
|
||||
OutputStream out = new FileOutputStream(dest);
|
||||
|
||||
byte[] buffer = new byte[1024];
|
||||
|
||||
int length;
|
||||
while ((length = in.read(buffer)) > 0) {
|
||||
out.write(buffer, 0, length);
|
||||
}
|
||||
|
||||
in.close();
|
||||
out.close();
|
||||
// Bukkit.broadcastMessage("File copied from " + src + " to " +
|
||||
// dest);
|
||||
}
|
||||
}
|
||||
|
||||
public static void delete(File file) throws IOException {
|
||||
if (file.isDirectory()) {
|
||||
|
||||
if (file.list().length == 0) {
|
||||
file.delete();
|
||||
} else {
|
||||
String files[] = file.list();
|
||||
|
||||
for (String temp : files) {
|
||||
File fileDelete = new File(file, temp);
|
||||
delete(fileDelete);
|
||||
}
|
||||
|
||||
if (file.list().length == 0) {
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
}
|
186
src/nl/Steffion/BlockHunt/Managers/MessageM.java
Normal file
186
src/nl/Steffion/BlockHunt/Managers/MessageM.java
Normal file
@ -0,0 +1,186 @@
|
||||
package nl.Steffion.BlockHunt.Managers;
|
||||
|
||||
import nl.Steffion.BlockHunt.W;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class MessageM {
|
||||
/*
|
||||
* Made by @author Steffion, © 2013.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Send a message to a player.
|
||||
*
|
||||
* @param player
|
||||
* @param message
|
||||
* @param tag
|
||||
* @param vars
|
||||
*/
|
||||
public static void sendMessage(Player player, String message, Boolean tag,
|
||||
String... vars) {
|
||||
if (player == null) {
|
||||
Bukkit.getConsoleSender().sendMessage(
|
||||
MessageM.replaceAll(CType.TAG(tag) + message, vars));
|
||||
} else {
|
||||
player.sendMessage(MessageM.replaceAll(CType.TAG(tag) + message,
|
||||
vars));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a message to a player from a Config.
|
||||
*
|
||||
* @param player
|
||||
* @param location
|
||||
* @param tag
|
||||
* @param vars
|
||||
*/
|
||||
public static void sendFMessage(Player player, ConfigC location,
|
||||
Boolean tag, String... vars) {
|
||||
if (player == null) {
|
||||
Bukkit.getConsoleSender().sendMessage(
|
||||
MessageM.replaceAll(
|
||||
CType.TAG(tag)
|
||||
+ location.config.getFile().get(
|
||||
location.getLocation()), vars));
|
||||
} else {
|
||||
player.sendMessage(MessageM.replaceAll(CType.TAG(tag)
|
||||
+ location.config.getFile().get(location.getLocation()),
|
||||
vars));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a message to all online players. Replaces %player% tag to the
|
||||
* Player's name or "Console".
|
||||
*
|
||||
* @param message
|
||||
* @param tag
|
||||
* @param vars
|
||||
*/
|
||||
public static void broadcastMessage(String message, Boolean tag,
|
||||
String... vars) {
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
String pMessage = message.replaceAll("%player%", player.getName());
|
||||
player.sendMessage(MessageM.replaceAll(CType.TAG(tag) + pMessage,
|
||||
vars));
|
||||
}
|
||||
message = message.replaceAll("%player%", "Console");
|
||||
Bukkit.getConsoleSender().sendMessage(
|
||||
MessageM.replaceAll(CType.TAG(tag) + message, vars));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a message to all online players from a Config. Replaces %player%
|
||||
* tag to the Player's name or "Console".
|
||||
*
|
||||
* @param location
|
||||
* @param tag
|
||||
* @param vars
|
||||
*/
|
||||
public static void broadcastFMessage(ConfigC location, Boolean tag,
|
||||
String... vars) {
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
String pMessage = location.config.getFile()
|
||||
.get(location.getLocation()).toString()
|
||||
.replaceAll("%player%", player.getName());
|
||||
player.sendMessage(MessageM.replaceAll(CType.TAG(tag) + pMessage,
|
||||
vars));
|
||||
}
|
||||
String message = location.config.getFile().get(location.getLocation())
|
||||
.toString().replaceAll("%player%", "Console");
|
||||
Bukkit.getConsoleSender().sendMessage(
|
||||
MessageM.replaceAll(CType.TAG(tag) + message, vars));
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace all variable codes.
|
||||
*
|
||||
* @param message
|
||||
* @param vars
|
||||
* @return
|
||||
*/
|
||||
public static String replaceAll(String message, String... vars) {
|
||||
return MessageM.replaceColours(MessageM.replaceColourVars(MessageM
|
||||
.replaceVars(message, vars)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace all colour codes.
|
||||
*
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
public static String replaceColours(String message) {
|
||||
return message.replaceAll("(&([a-fk-or0-9]))", "\u00A7$2");
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace Colour codes from config.
|
||||
*
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
public static String replaceColourVars(String message) {
|
||||
message = message.replaceAll("%N", CType.NORMAL());
|
||||
message = message.replaceAll("%W", CType.WARNING());
|
||||
message = message.replaceAll("%E", CType.ERROR());
|
||||
message = message.replaceAll("%A", CType.ARG());
|
||||
message = message.replaceAll("%H", CType.HEADER());
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace all variables.
|
||||
*
|
||||
* @param message
|
||||
* @param vars
|
||||
* @return Replaced String.
|
||||
*/
|
||||
public static String replaceVars(String message, String... vars) {
|
||||
for (String var : vars) {
|
||||
String[] split = var.split("-");
|
||||
message = message.replaceAll("%" + split[0] + "%", split[1]);
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
public static class CType {
|
||||
|
||||
public static String NORMAL() {
|
||||
return (String) W.config.get(ConfigC.chat_normal);
|
||||
}
|
||||
|
||||
public static String WARNING() {
|
||||
return (String) W.config.get(ConfigC.chat_warning);
|
||||
}
|
||||
|
||||
public static String ERROR() {
|
||||
return (String) W.config.get(ConfigC.chat_error);
|
||||
}
|
||||
|
||||
public static String ARG() {
|
||||
return (String) W.config.get(ConfigC.chat_arg);
|
||||
}
|
||||
|
||||
public static String HEADER() {
|
||||
return (String) W.config.get(ConfigC.chat_header);
|
||||
}
|
||||
|
||||
public static String TAG() {
|
||||
return (String) W.config.get(ConfigC.chat_header)
|
||||
+ (String) W.config.get(ConfigC.chat_tag);
|
||||
}
|
||||
|
||||
public static String TAG(Boolean enabled) {
|
||||
if (enabled) {
|
||||
return (String) W.config.get(ConfigC.chat_header)
|
||||
+ (String) W.config.get(ConfigC.chat_tag);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
132
src/nl/Steffion/BlockHunt/Managers/PlayerM.java
Normal file
132
src/nl/Steffion/BlockHunt/Managers/PlayerM.java
Normal file
@ -0,0 +1,132 @@
|
||||
package nl.Steffion.BlockHunt.Managers;
|
||||
|
||||
import nl.Steffion.BlockHunt.W;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PlayerM {
|
||||
/*
|
||||
* Made by @author Steffion, © 2013.
|
||||
*/
|
||||
|
||||
public static String main = W.pluginMainPermission;
|
||||
|
||||
public enum PType {
|
||||
ALL, PLAYER, MODERATOR, ADMIN, OP;
|
||||
}
|
||||
|
||||
public enum PermsC {
|
||||
info (main + "info", PType.ALL),
|
||||
help (main + "help", PType.ALL),
|
||||
reload (main + "reload", PType.MODERATOR);
|
||||
|
||||
public String perm;
|
||||
public PType type;
|
||||
|
||||
private PermsC (String perm, PType type) {
|
||||
this.perm = perm;
|
||||
this.type = type;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the player has a permission.
|
||||
*
|
||||
* @param player
|
||||
* @param perm
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
public static boolean hasPerm(Player player, PermsC perm, Boolean message) {
|
||||
PType type = perm.type;
|
||||
if (player == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (type == PType.ALL) {
|
||||
return true;
|
||||
} else if (type == PType.OP) {
|
||||
if (player.isOp()) {
|
||||
return true;
|
||||
}
|
||||
} else if (type == PType.ADMIN) {
|
||||
if (player.hasPermission(main + "admin")) {
|
||||
return true;
|
||||
}
|
||||
} else if (type == PType.MODERATOR) {
|
||||
if (player.hasPermission(main + "moderator")) {
|
||||
return true;
|
||||
}
|
||||
} else if (type == PType.PLAYER) {
|
||||
if (player.hasPermission(main + "player")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (player.hasPermission("*")) {
|
||||
return true;
|
||||
} else if (player.hasPermission(main + "*")) {
|
||||
return true;
|
||||
} else if (player.hasPermission(main + perm)) {
|
||||
return true;
|
||||
} else if (player.hasPermission(main + perm + "*")) {
|
||||
return true;
|
||||
} else {
|
||||
if (message) {
|
||||
MessageM.sendFMessage(player, ConfigC.error_noPermission, true);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the player has a permission.
|
||||
*
|
||||
* @param player
|
||||
* @param perm
|
||||
* @param type
|
||||
* @param message
|
||||
* @return
|
||||
*/
|
||||
public static boolean hasPermRaw(Player player, String perm, PType type,
|
||||
Boolean message) {
|
||||
if (player == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (type == PType.ALL) {
|
||||
return true;
|
||||
} else if (type == PType.OP) {
|
||||
if (player.isOp()) {
|
||||
return true;
|
||||
}
|
||||
} else if (type == PType.ADMIN) {
|
||||
if (player.hasPermission(main + "admin")) {
|
||||
return true;
|
||||
}
|
||||
} else if (type == PType.MODERATOR) {
|
||||
if (player.hasPermission(main + "moderator")) {
|
||||
return true;
|
||||
}
|
||||
} else if (type == PType.PLAYER) {
|
||||
if (player.hasPermission(main + "player")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (player.hasPermission("*")) {
|
||||
return true;
|
||||
} else if (player.hasPermission(main + "*")) {
|
||||
return true;
|
||||
} else if (player.hasPermission(main + perm)) {
|
||||
return true;
|
||||
} else if (player.hasPermission(main + perm + "*")) {
|
||||
return true;
|
||||
} else {
|
||||
if (message) {
|
||||
MessageM.sendFMessage(player, ConfigC.error_noPermission, true);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
@ -0,0 +1,67 @@
|
||||
package nl.Steffion.BlockHunt.Serializables;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import nl.Steffion.BlockHunt.Managers.MessageM;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||
import org.bukkit.configuration.serialization.SerializableAs;
|
||||
|
||||
@SerializableAs("Location")
|
||||
public class LocationSerializable extends Location implements
|
||||
ConfigurationSerializable {
|
||||
public LocationSerializable (World world, double x, double y, double z,
|
||||
float yaw, float pitch) {
|
||||
super(world, x, y, z, yaw, pitch);
|
||||
}
|
||||
|
||||
public LocationSerializable (Location loc) {
|
||||
super(loc.getWorld(), loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(),
|
||||
loc.getPitch());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (o instanceof LocationSerializable || o instanceof Location) {
|
||||
Location loc = (Location) o;
|
||||
return loc.getWorld().getName().equals(getWorld().getName())
|
||||
&& loc.getX() == getX() && loc.getY() == getY()
|
||||
&& loc.getZ() == getZ() && loc.getYaw() == getYaw()
|
||||
&& loc.getPitch() == getPitch();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> serialize() {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
map.put("w", getWorld().getName());
|
||||
map.put("x", getX());
|
||||
map.put("y", getY());
|
||||
map.put("z", getZ());
|
||||
if (getYaw() != 0D)
|
||||
map.put("a", getYaw());
|
||||
if (getPitch() != 0D)
|
||||
map.put("p", getPitch());
|
||||
return map;
|
||||
}
|
||||
|
||||
public static LocationSerializable deserialize(Map<String, Object> map) {
|
||||
World w = Bukkit.getWorld((String) M.g(map, "w", ""));
|
||||
if (w == null) {
|
||||
MessageM.sendMessage(
|
||||
null,
|
||||
"%EError deserializing LocationSerializable - world not found!",
|
||||
true);
|
||||
return null;
|
||||
}
|
||||
return new LocationSerializable(w, (Double) M.g(map, "x", 0D),
|
||||
(Double) M.g(map, "y", 0D), (Double) M.g(map, "z", 0D),
|
||||
((Double) M.g(map, "a", 0D)).floatValue(), ((Double) M.g(map,
|
||||
"p", 0D)).floatValue());
|
||||
}
|
||||
}
|
9
src/nl/Steffion/BlockHunt/Serializables/M.java
Normal file
9
src/nl/Steffion/BlockHunt/Serializables/M.java
Normal file
@ -0,0 +1,9 @@
|
||||
package nl.Steffion.BlockHunt.Serializables;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class M {
|
||||
public static Object g(Map<String, Object> map, String key, Object def) {
|
||||
return (map.containsKey(key) ? map.get(key) : def);
|
||||
}
|
||||
}
|
32
src/nl/Steffion/BlockHunt/W.java
Normal file
32
src/nl/Steffion/BlockHunt/W.java
Normal file
@ -0,0 +1,32 @@
|
||||
package nl.Steffion.BlockHunt;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import nl.Steffion.BlockHunt.Managers.ConfigM;
|
||||
import nl.Steffion.BlockHunt.Managers.MessageM;
|
||||
|
||||
public class W {
|
||||
/*
|
||||
* Made by @author Steffion, © 2013.
|
||||
*/
|
||||
|
||||
public static String pluginName = "BlockHunt";
|
||||
public static String pluginVersion = "v1.0.0";
|
||||
public static String engineVersion = "v1.1.0";
|
||||
public static String pluginAutors = "Steffion";
|
||||
public static String pluginMainPermission = pluginName + ".";
|
||||
|
||||
public static ArrayList<String> newFiles = new ArrayList<String>();
|
||||
public static ConfigM config = new ConfigM("config", "");
|
||||
public static ConfigM messages = new ConfigM("messages", "");
|
||||
|
||||
public static void newFiles() {
|
||||
ConfigM.setDefaults();
|
||||
for (String Filename : newFiles) {
|
||||
MessageM.sendMessage(null,
|
||||
"%WCouldn't find '%A%Filename%.yml%W' creating new one.",
|
||||
true, "Filename-" + Filename);
|
||||
}
|
||||
newFiles.clear();
|
||||
}
|
||||
}
|
14
src/plugin.yml
Normal file
14
src/plugin.yml
Normal file
@ -0,0 +1,14 @@
|
||||
name: BlockHunt
|
||||
main: nl.Steffion.BlockHunt.BlockHunt
|
||||
version: 1.0.0
|
||||
authors:
|
||||
- Steffion
|
||||
description: Description here.
|
||||
commands:
|
||||
BlockHunt:
|
||||
usage: /<command>
|
||||
description: N/A
|
||||
aliases:
|
||||
- bh
|
||||
- hideandseek
|
||||
- hs
|
Loading…
x
Reference in New Issue
Block a user