diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 4a9b692..3068ac5 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -7,9 +7,11 @@
+
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index a6e7e6c..7ba6544 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,16 +2,19 @@
+
+
+
+
-
-
+
@@ -46,7 +49,7 @@
-
+
@@ -55,19 +58,14 @@
+
-
+
-
-
-
-
-
-
-
-
+
+
@@ -104,7 +102,7 @@
-
+
@@ -125,7 +123,7 @@
-
+
1579657428994
@@ -134,14 +132,10 @@
-
+
-
-
-
-
-
+
@@ -152,50 +146,59 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index f853677..126f2e1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,8 +39,8 @@
shade
-
- E:\_TEST_SERVER_1.15.1_\plugins\${project.artifactId}-MC-1.15.1-${project.version}.jar
+ D:\Code\java\spigotPlugins\_TEST_SERVER_1.15.1_\plugins\TamableFoxes-MC-v1.15.1-v${project.version}.jar
+
false
@@ -71,18 +71,11 @@
-
-
- org.spigotmc
- spigot
- 1.15.1
- system
- E:/spigot-1.15.1.jar
com.github.WesJD.AnvilGUI
diff --git a/src/main/java/net/seanomik/tamablefoxes/EntityTamableFox.java b/src/main/java/net/seanomik/tamablefoxes/EntityTamableFox.java
index c256742..212b57b 100644
--- a/src/main/java/net/seanomik/tamablefoxes/EntityTamableFox.java
+++ b/src/main/java/net/seanomik/tamablefoxes/EntityTamableFox.java
@@ -2,6 +2,7 @@ package net.seanomik.tamablefoxes;
import com.mojang.datafixers.Dynamic;
import net.minecraft.server.v1_15_R1.*;
+import net.seanomik.tamablefoxes.io.Config;
import net.seanomik.tamablefoxes.pathfinding.*;
import org.bukkit.ChatColor;
import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack;
@@ -241,7 +242,7 @@ public class EntityTamableFox extends EntityFox {
return this.jumping;
}
- private void updateFoxVisual() {
+ public void updateFoxVisual() {
new UpdateFoxRunnable().runTask(TamableFoxes.getPlugin());
}
diff --git a/src/main/java/net/seanomik/tamablefoxes/TamableFoxes.java b/src/main/java/net/seanomik/tamablefoxes/TamableFoxes.java
index fbda1de..4c84a0f 100644
--- a/src/main/java/net/seanomik/tamablefoxes/TamableFoxes.java
+++ b/src/main/java/net/seanomik/tamablefoxes/TamableFoxes.java
@@ -1,16 +1,15 @@
package net.seanomik.tamablefoxes;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import net.minecraft.server.v1_15_R1.EntityFox;
-import net.minecraft.server.v1_15_R1.EntityLiving;
-import net.minecraft.server.v1_15_R1.EntityTypes;
-import net.minecraft.server.v1_15_R1.EnumItemSlot;
+import net.minecraft.server.v1_15_R1.*;
import net.seanomik.tamablefoxes.command.CommandSpawnTamableFox;
+import net.seanomik.tamablefoxes.io.Config;
+import net.seanomik.tamablefoxes.io.LanguageConfig;
import net.seanomik.tamablefoxes.sqlite.SQLiteHandler;
import net.seanomik.tamablefoxes.sqlite.SQLiteSetterGetter;
import net.wesjd.anvilgui.AnvilGUI;
import org.bukkit.*;
+import org.bukkit.Material;
+import org.bukkit.Particle;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
import org.bukkit.entity.Entity;
@@ -18,7 +17,10 @@ import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
+import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntitySpawnEvent;
+import org.bukkit.event.player.PlayerBedEnterEvent;
+import org.bukkit.event.player.PlayerBedLeaveEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.world.WorldSaveEvent;
@@ -31,13 +33,10 @@ import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
-import java.util.UUID;
import java.util.stream.Collectors;
// @TODO: Add language.yml
-// Foxes will be loaded in as sitting, even if they weren't when the server was shutdown
-// Add fox sleeping when the player sleeps
+// Foxes will be loaded in as sitting, even if they weren't when the server was shutdown (sometimes)
public final class TamableFoxes extends JavaPlugin implements Listener {
private static TamableFoxes plugin;
public List spawnedFoxes = new ArrayList<>();
@@ -45,12 +44,19 @@ public final class TamableFoxes extends JavaPlugin implements Listener {
public SQLiteSetterGetter sqLiteSetterGetter = new SQLiteSetterGetter();
public SQLiteHandler sqLiteHandler = new SQLiteHandler();
+ private boolean versionSupported = true;
+
@Override
public void onLoad() {
+ plugin = this;
+
+ LanguageConfig.getConfig().saveDefault();
+
String version = Bukkit.getServer().getClass().getPackage().getName();
if (!version.equals("org.bukkit.craftbukkit.v1_15_R1")) {
- Bukkit.getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.RED + "This plugin version only supports 1.15.1! Not registering entity!");
+ Bukkit.getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.RED + LanguageConfig.getUnsupportedMCVersionRegister());
+ versionSupported = false;
return;
}
@@ -68,25 +74,22 @@ public final class TamableFoxes extends JavaPlugin implements Listener {
field.setAccessible(false);
- getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.GREEN + "Replaced tamable fox entity!");
+ getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.GREEN + LanguageConfig.getSuccessReplaced());
} catch (Exception e) {
e.printStackTrace();
- getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.RED + "Failed to replace tamable fox entity!");
+ getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.RED + LanguageConfig.getFailureReplace());
}
}
@Override
public void onEnable() {
- String version = Bukkit.getServer().getClass().getPackage().getName();
- if (!version.equals("org.bukkit.craftbukkit.v1_15_R1")) {
- Bukkit.getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.RED + "This plugin version only supports 1.15.1! Disabling plugin!");
+ if (!versionSupported) {
+ Bukkit.getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.RED + LanguageConfig.getUnsupportedMCVersionDisable());
getServer().getPluginManager().disablePlugin(this);
return;
}
- plugin = this;
-
getServer().getPluginManager().registerEvents(this, this);
this.getCommand("spawntamablefox").setExecutor(new CommandSpawnTamableFox(this));
@@ -100,7 +103,7 @@ public final class TamableFoxes extends JavaPlugin implements Listener {
@Override
public void onDisable() {
- getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.YELLOW + "Saving foxes.");
+ getServer().getConsoleSender().sendMessage(Utils.getPrefix() + ChatColor.YELLOW + LanguageConfig.getSavingFoxMessage());
sqLiteSetterGetter.saveFoxes(spawnedFoxes);
}
@@ -178,8 +181,8 @@ public final class TamableFoxes extends JavaPlugin implements Listener {
player.getWorld().spawnParticle(Particle.HEART, entity.getLocation(), 6, 0.5D, 0.5D, 0.5D);
// Name fox
- player.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + "You just tamed a wild fox!");
- player.sendMessage(ChatColor.RED + "What do you want to call it?");
+ player.sendMessage(ChatColor.RED + ChatColor.BOLD.toString() + LanguageConfig.getTamedMessage());
+ player.sendMessage(ChatColor.RED + LanguageConfig.getTamingAskingName());
tamableFox.setChosenName("???");
//TamableFoxes.getPlugin().sqLiteSetterGetter.saveFox(tamableFox);
@@ -189,7 +192,7 @@ public final class TamableFoxes extends JavaPlugin implements Listener {
.onComplete((plr, text) -> { // Called when the inventory output slot is clicked
if(!text.equals("")) {
tamableFox.setChosenName(text);
- plr.sendMessage(Utils.getPrefix() + ChatColor.GREEN + text + " is perfect!");
+ plr.sendMessage(Utils.getPrefix() + ChatColor.GREEN + LanguageConfig.getTamingChosenPerfect(text));
TamableFoxes.getPlugin().sqLiteSetterGetter.saveFox(tamableFox);
}
@@ -213,6 +216,50 @@ public final class TamableFoxes extends JavaPlugin implements Listener {
}
}
+ @EventHandler
+ public void onPlayerBedEnterEvent(PlayerBedEnterEvent event) {
+ Player player = event.getPlayer();
+ List foxesOf = getFoxesOf(player);
+
+ for (EntityTamableFox tamableFox : foxesOf) {
+ if (player.getWorld().getTime() > 12541L && player.getWorld().getTime() < 23460L) {
+ tamableFox.setSleeping(true);
+ }
+ }
+ }
+
+ @EventHandler
+ public void onPlayerBedLeaveEvent(PlayerBedLeaveEvent event) {
+ Player player = event.getPlayer();
+ List foxesOf = getFoxesOf(player);
+
+ for (EntityTamableFox tamableFox : foxesOf) {
+ tamableFox.setSleeping(false);
+ if (tamableFox.isSitting()) {
+ tamableFox.setSitting(true);
+ }
+ }
+ }
+
+ @EventHandler
+ public void onEntityDeathEvent(EntityDeathEvent event) {
+ Entity entity = event.getEntity();
+ if (!Utils.isTamableFox(entity)) return; // Is the entity a tamable fox?
+
+ // Remove the fox from storage
+ spawnedFoxes.remove(entity);
+
+ // Notify the owner
+ EntityTamableFox tamableFox = (EntityTamableFox) ((CraftEntity) entity).getHandle();
+ if (tamableFox.getOwner() != null) {
+ Player owner = ((EntityPlayer) tamableFox.getOwner()).getBukkitEntity();
+ owner.sendMessage(Utils.getPrefix() + ChatColor.RED + tamableFox.getChosenName() + " was killed!");
+ }
+
+ // Remove the fox from database
+ sqLiteSetterGetter.removeFox(tamableFox);
+ }
+
public EntityTamableFox spawnTamableFox(Location loc, EntityFox.Type type) {
EntityTamableFox tamableFox = (EntityTamableFox) ((CraftEntity) loc.getWorld().spawnEntity(loc, EntityType.FOX)).getHandle();
tamableFox.setFoxType(type);
@@ -221,7 +268,7 @@ public final class TamableFoxes extends JavaPlugin implements Listener {
}
public List getFoxesOf(Player player) {
- return spawnedFoxes.stream().filter(fox -> fox.getOwnerUUID() != null && fox.getOwnerUUID().equals(player.getUniqueId())).collect(Collectors.toList());
+ return spawnedFoxes.stream().filter(fox -> fox.getOwner() != null && fox.getOwner().getUniqueID().equals(player.getUniqueId())).collect(Collectors.toList());
}
public static TamableFoxes getPlugin() {
diff --git a/src/main/java/net/seanomik/tamablefoxes/command/CommandSpawnTamableFox.java b/src/main/java/net/seanomik/tamablefoxes/command/CommandSpawnTamableFox.java
index 9934ffe..42a2bd9 100644
--- a/src/main/java/net/seanomik/tamablefoxes/command/CommandSpawnTamableFox.java
+++ b/src/main/java/net/seanomik/tamablefoxes/command/CommandSpawnTamableFox.java
@@ -1,22 +1,17 @@
package net.seanomik.tamablefoxes.command;
-import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Util;
-import net.seanomik.tamablefoxes.Config;
import net.seanomik.tamablefoxes.EntityTamableFox;
import net.seanomik.tamablefoxes.TamableFoxes;
import net.minecraft.server.v1_15_R1.EntityFox;
import net.seanomik.tamablefoxes.Utils;
+import net.seanomik.tamablefoxes.io.LanguageConfig;
import org.bukkit.ChatColor;
-import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ItemMeta;
import java.util.Arrays;
-import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
@@ -31,12 +26,12 @@ public class CommandSpawnTamableFox implements TabExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player)) {
- sender.sendMessage("Command can only be run from player state.");
+ sender.sendMessage(Utils.getPrefix() + ChatColor.RED + LanguageConfig.getOnlyRunPlayer());
return true;
}
if (!sender.hasPermission("tamablefoxes.spawntamablefox")) {
- sender.sendMessage(ChatColor.RED + "You do not have the permission for this command.");
+ sender.sendMessage(Utils.getPrefix() + ChatColor.RED + LanguageConfig.getNoPermMessage());
return true;
}
@@ -46,30 +41,29 @@ public class CommandSpawnTamableFox implements TabExecutor {
case "red":
try {
EntityTamableFox fox = plugin.spawnTamableFox(player.getLocation(), EntityFox.Type.RED);
- //plugin.getSpawnedFoxes().add(fox);
plugin.sqLiteSetterGetter.saveFox(fox);
- player.sendMessage(Utils.getPrefix() + ChatColor.RESET + "Spawned a " + ChatColor.RED + "Red" + ChatColor.WHITE + " fox.");
+ player.sendMessage(Utils.getPrefix() + ChatColor.RESET + LanguageConfig.getSpawnedFoxMessage(EntityFox.Type.RED));
} catch (Exception e) {
e.printStackTrace();
- player.sendMessage(Utils.getPrefix() + ChatColor.RED + "Failed to spawn fox, check console!");
+ player.sendMessage(Utils.getPrefix() + ChatColor.RED + LanguageConfig.getFailureSpawn());
}
break;
case "snow":
try {
EntityTamableFox spawnedFox = plugin.spawnTamableFox(player.getLocation(), EntityFox.Type.SNOW);
- //plugin.getSpawnedFoxes().add(spawnedFox);
plugin.sqLiteSetterGetter.saveFox(spawnedFox);
- player.sendMessage(Utils.getPrefix() + ChatColor.RESET + "Spawned a " + ChatColor.AQUA + "Snow" + ChatColor.WHITE + " fox.");
+ player.sendMessage(Utils.getPrefix() + ChatColor.RESET + LanguageConfig.getSpawnedFoxMessage(EntityFox.Type.SNOW));
} catch (Exception e) {
e.printStackTrace();
- player.sendMessage(Utils.getPrefix() + ChatColor.RED + "Failed to spawn fox, check console!");
+ player.sendMessage(Utils.getPrefix() + ChatColor.RED + LanguageConfig.getFailureSpawn());
}
break;
case "reload":
plugin.reloadConfig();
- player.sendMessage(Utils.getPrefix() + ChatColor.GREEN + "Reloaded.");
+ LanguageConfig.getConfig().reloadConfig();
+ player.sendMessage(Utils.getPrefix() + ChatColor.GREEN + LanguageConfig.getReloadMessage());
break;
default:
player.sendMessage(ChatColor.RED + "/spawntamablefox " + ChatColor.GRAY + "[red | snow | reload]");
diff --git a/src/main/java/net/seanomik/tamablefoxes/Config.java b/src/main/java/net/seanomik/tamablefoxes/io/Config.java
similarity index 90%
rename from src/main/java/net/seanomik/tamablefoxes/Config.java
rename to src/main/java/net/seanomik/tamablefoxes/io/Config.java
index 27efc7d..f0bed77 100644
--- a/src/main/java/net/seanomik/tamablefoxes/Config.java
+++ b/src/main/java/net/seanomik/tamablefoxes/io/Config.java
@@ -1,5 +1,6 @@
-package net.seanomik.tamablefoxes;
+package net.seanomik.tamablefoxes.io;
+import net.seanomik.tamablefoxes.TamableFoxes;
import org.bukkit.entity.Player;
public class Config {
diff --git a/src/main/java/net/seanomik/tamablefoxes/io/LanguageConfig.java b/src/main/java/net/seanomik/tamablefoxes/io/LanguageConfig.java
new file mode 100644
index 0000000..8b225e6
--- /dev/null
+++ b/src/main/java/net/seanomik/tamablefoxes/io/LanguageConfig.java
@@ -0,0 +1,136 @@
+package net.seanomik.tamablefoxes.io;
+
+import net.minecraft.server.v1_15_R1.EntityFox;
+import net.seanomik.tamablefoxes.TamableFoxes;
+import org.bukkit.ChatColor;
+import org.bukkit.configuration.file.YamlConfiguration;
+
+import java.io.File;
+
+public class LanguageConfig extends YamlConfiguration {
+ private static LanguageConfig config;
+ private TamableFoxes plugin;
+ private File configFile;
+
+ public static LanguageConfig getConfig() {
+ if (LanguageConfig.config == null) {
+ LanguageConfig.config = new LanguageConfig();
+ }
+ return LanguageConfig.config;
+ }
+
+ public LanguageConfig() {
+ this.plugin = TamableFoxes.getPlugin();
+ this.configFile = new File(this.plugin.getDataFolder(), "language.yml");
+ this.saveDefault();
+ this.reload();
+ }
+
+ public void reload() {
+ try {
+ super.load(this.configFile);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void save() {
+ try {
+ super.save(this.configFile);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void saveDefault() {
+ this.plugin.saveResource("language.yml", false);
+ }
+
+ public void saveConfig() {
+ try {
+ super.save(this.configFile);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void reloadConfig() {
+ try {
+ super.load(this.configFile);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void saveDefaultConfig() {
+ try {
+ this.plugin.saveDefaultConfig();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static String getUnsupportedMCVersionRegister() {
+ return getConfig().getString("unsupported-mc-version-not-registering");
+ }
+
+ public static String getUnsupportedMCVersionDisable() {
+ return getConfig().getString("unsupported-mc-version-disabling");
+ }
+
+ public static String getSuccessReplaced() {
+ return getConfig().getString("success-replaced-entity");
+ }
+
+ public static String getFailureReplace() {
+ return getConfig().getString("error-to-replaced-entity");
+ }
+
+ public static String getSavingFoxMessage() {
+ return getConfig().getString("saving-foxes-message");
+ }
+
+ public static String getTamedMessage() {
+ return getConfig().getString("taming-tamed-message");
+ }
+
+ public static String getTamingAskingName() {
+ return getConfig().getString("taming-asking-for-name-message");
+ }
+
+ public static String getTamingChosenPerfect(String chosen) {
+ return getConfig().getString("taming-chosen-name-perfect").replaceAll("%NAME%", chosen);
+ }
+
+ public static String getNoPermMessage() {
+ return getConfig().getString("no-permission");
+ }
+
+ public static String getOnlyRunPlayer() {
+ return getConfig().getString("only-run-by-player");
+ }
+
+ public static String getSpawnedFoxMessage(EntityFox.Type type) {
+ String typeStr = ((type == type.SNOW) ? ChatColor.AQUA + "Snow" : ChatColor.RED + "Red") + ChatColor.RESET;
+ return getConfig().getString("spawned-fox-message").replaceAll("%TYPE%", typeStr);
+ }
+
+ public static String getFailureSpawn() {
+ return getConfig().getString("failed-to-spawn-message");
+ }
+
+ public static String getReloadMessage() {
+ return getConfig().getString("reloaded-message");
+ }
+
+ public static String getCreatedSQLDatabase() {
+ return getConfig().getString("created-sql-foxes-database");
+ }
+}
+
+
\ No newline at end of file
diff --git a/src/main/java/net/seanomik/tamablefoxes/sqlite/SQLiteSetterGetter.java b/src/main/java/net/seanomik/tamablefoxes/sqlite/SQLiteSetterGetter.java
index f1901e8..653ff16 100644
--- a/src/main/java/net/seanomik/tamablefoxes/sqlite/SQLiteSetterGetter.java
+++ b/src/main/java/net/seanomik/tamablefoxes/sqlite/SQLiteSetterGetter.java
@@ -6,6 +6,7 @@ import net.minecraft.server.v1_15_R1.EnumItemSlot;
import net.seanomik.tamablefoxes.EntityTamableFox;
import net.seanomik.tamablefoxes.TamableFoxes;
import net.seanomik.tamablefoxes.Utils;
+import net.seanomik.tamablefoxes.io.LanguageConfig;
import org.apache.commons.lang.ObjectUtils;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -49,7 +50,7 @@ public class SQLiteSetterGetter {
PreparedStatement statement = sqLiteHandler.getConnection().prepareStatement(foxesTable);
statement.executeUpdate();
- plugin.getServer().getConsoleSender().sendMessage(Utils.getPrefix() + "Created foxes table!");
+ plugin.getServer().getConsoleSender().sendMessage(Utils.getPrefix() + LanguageConfig.getCreatedSQLDatabase());
}
} catch (SQLException e) {
e.printStackTrace();
@@ -139,8 +140,12 @@ public class SQLiteSetterGetter {
toRemoveLater.add(entityUUID);
continue;
}
+
+ boolean tamed = false;
EntityTamableFox tamableFox = (EntityTamableFox) ((CraftEntity) plugin.getServer().getEntity(entityUUID)).getHandle();
if (!ownerUUIDString.equals("none")) {
+ tamed = true;
+
OfflinePlayer owner = plugin.getServer().getOfflinePlayer(UUID.fromString(ownerUUIDString));
if (owner.isOnline()) {
EntityLiving livingOwner = (EntityLiving) ((CraftEntity) owner).getHandle();
@@ -154,7 +159,9 @@ public class SQLiteSetterGetter {
// Fox may spawn standing if the server was closed while it was sitting.
if (sitting) {
- tamableFox.setHardSitting(true);
+ if (tamed) {
+ tamableFox.setHardSitting(true);
+ }
} else if (sleeping) {
tamableFox.setSleeping(true);
}
diff --git a/src/main/resources/language.yml b/src/main/resources/language.yml
new file mode 100644
index 0000000..ea870ea
--- /dev/null
+++ b/src/main/resources/language.yml
@@ -0,0 +1,18 @@
+unsupported-mc-version-not-registering: "ERROR: This plugin version only supports 1.15.1! Not registering entity!"
+unsupported-mc-version-disabling: "This plugin version only supports 1.15.1! Disabling plugin!"
+success-replaced-entity: "Replaced tamable fox entity!"
+error-to-replaced-entity: "Failed to replace tamable fox entity!"
+
+saving-foxes-message: "Saving foxes."
+
+taming-tamed-message: "You just tamed a wild fox!"
+taming-asking-for-name-message: "What do you want to call it?"
+taming-chosen-name-perfect: "%NAME% is perfect!"
+
+no-permission: "You do not have the permission for this command."
+only-run-by-player: "Command can only be run from player state!"
+spawned-fox-message: "Spawned a %TYPE% fox."
+failed-to-spawn-message: "Failed to spawn fox!"
+reloaded-message: "Reloaded"
+
+created-sql-foxes-database: "Created foxes SQLite database!"
\ No newline at end of file
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 45a7e9d..4370e9b 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -2,10 +2,8 @@ name: Tamablefoxes
version: ${project.version}
main: net.seanomik.tamablefoxes.TamableFoxes
api-version: 1.15
-#load: STARTUP
load: POSTWORLD
-#load: STARTUP
-description: Modified version of TamableFoxes for 1.15.1.
+description: Adds tamable foxes to Minecraft!
commands:
spawntamablefox:
diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml
index e5b660c..131cbf2 100644
--- a/target/classes/plugin.yml
+++ b/target/classes/plugin.yml
@@ -5,7 +5,7 @@ api-version: 1.15
#load: STARTUP
load: POSTWORLD
#load: STARTUP
-description: Modified version of TamableFoxes for 1.15.1.
+description: Adds tamable foxes to Minecraft!
commands:
spawntamablefox:
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
index 3bce520..7a0f253 100644
--- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -1,15 +1,16 @@
net\seanomik\tamablefoxes\EntityTamableFox.class
-net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalOwnerHurtByTarget.class
net\seanomik\tamablefoxes\command\CommandSpawnTamableFox.class
-net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalFollowOwner.class
net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalSit.class
+net\seanomik\tamablefoxes\sqlite\SQLiteSetterGetter.class
+net\seanomik\tamablefoxes\io\LanguageConfig.class
+net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalPanic.class
+net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalOwnerHurtTarget.class
+net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalMeleeAttack.class
+net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalOwnerHurtByTarget.class
+net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalFollowOwner.class
net\seanomik\tamablefoxes\sqlite\SQLiteHandler.class
net\seanomik\tamablefoxes\TamableFoxes.class
net\seanomik\tamablefoxes\EntityTamableFox$UpdateFoxRunnable.class
-net\seanomik\tamablefoxes\Config.class
net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalHurtByTarget.class
-net\seanomik\tamablefoxes\sqlite\SQLiteSetterGetter.class
-net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalPanic.class
net\seanomik\tamablefoxes\Utils.class
-net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalOwnerHurtTarget.class
-net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalMeleeAttack.class
+net\seanomik\tamablefoxes\io\Config.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index 60ba81a..e99918a 100644
--- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,13 +1,15 @@
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\sqlite\SQLiteHandler.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfindGoalOwnerHurtByTarget.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfindGoalSit.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfindGoalHurtByTarget.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\Config.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalMeleeAttack.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\EntityTamableFox.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfindGoalOwnerHurtTarget.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\sqlite\SQLiteSetterGetter.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\Utils.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\command\CommandSpawnTamableFox.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\TamableFoxes.java
-E:\TamableFoxesCustomEntity\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfindGoalFollowOwner.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalHurtByTarget.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalOwnerHurtByTarget.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\command\CommandSpawnTamableFox.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\TamableFoxes.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\io\Config.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\Utils.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalSit.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\EntityTamableFox.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalOwnerHurtTarget.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\sqlite\SQLiteHandler.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\sqlite\SQLiteSetterGetter.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalFollowOwner.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalMeleeAttack.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\pathfinding\FoxPathfinderGoalPanic.java
+D:\Code\java\spigotPlugins\myPlugins\GitTamableFoxes\src\main\java\net\seanomik\tamablefoxes\io\LanguageConfig.java