Skip to content

Commit 222878d

Browse files
authored
Merge pull request #63 from weaves7/master
Backup config before auto upgrading it and add color and prefix customization to messages
2 parents e84dc67 + 5421107 commit 222878d

7 files changed

Lines changed: 234 additions & 132 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>org.makershaven</groupId>
88
<artifactId>SignShop</artifactId>
9-
<version>3.3.4</version>
9+
<version>3.4.0</version>
1010
<properties>
1111
<maven.compiler.source>1.8</maven.compiler.source>
1212
<maven.compiler.target>1.8</maven.compiler.target>

src/main/java/org/wargamer2010/signshop/SignShop.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,20 @@
55
import org.bukkit.ChatColor;
66
import org.bukkit.command.Command;
77
import org.bukkit.command.CommandSender;
8+
import org.bukkit.configuration.file.FileConfiguration;
89
import org.bukkit.event.Event;
910
import org.bukkit.plugin.PluginDescriptionFile;
1011
import org.bukkit.plugin.PluginManager;
1112
import org.bukkit.plugin.java.JavaPlugin;
13+
import org.bukkit.util.FileUtil;
1214
import org.jetbrains.annotations.NotNull;
1315
import org.wargamer2010.signshop.blocks.SignShopBooks;
1416
import org.wargamer2010.signshop.blocks.SignShopItemMeta;
1517
import org.wargamer2010.signshop.commands.*;
1618
import org.wargamer2010.signshop.configuration.ColorUtil;
1719
import org.wargamer2010.signshop.configuration.SignShopConfig;
1820
import org.wargamer2010.signshop.configuration.Storage;
21+
import org.wargamer2010.signshop.configuration.configUtil;
1922
import org.wargamer2010.signshop.listeners.SignShopBlockListener;
2023
import org.wargamer2010.signshop.listeners.SignShopLoginListener;
2124
import org.wargamer2010.signshop.listeners.SignShopPlayerListener;
@@ -25,6 +28,7 @@
2528
import org.wargamer2010.signshop.player.PlayerMetadata;
2629
import org.wargamer2010.signshop.timing.TimeManager;
2730
import org.wargamer2010.signshop.util.DataConverter;
31+
import org.wargamer2010.signshop.util.SSTimeUtil;
2832
import org.wargamer2010.signshop.util.commandUtil;
2933
import org.wargamer2010.signshop.worth.CMIWorthHandler;
3034
import org.wargamer2010.signshop.worth.EssentialsWorthHandler;
@@ -38,14 +42,14 @@
3842
import java.util.logging.*;
3943

4044
public class SignShop extends JavaPlugin {
45+
public static final int DATA_VERSION = 3;
4146
private static final Logger logger = Logger.getLogger("Minecraft");
4247
private static final Logger transactionlogger = Logger.getLogger("SignShop_Transactions");
4348
public static WorthHandler worthHandler;
4449
private static SignShop instance;
4550
//Statics
4651
private static Storage store;
4752
private static TimeManager manager = null;
48-
public static final int DATA_VERSION = 3;
4953
//Permissions
5054
private static boolean USE_PERMISSIONS = false;
5155
// Commands
@@ -117,6 +121,9 @@ public void onEnable() {
117121

118122
setupCommands();
119123

124+
// Backup config if it is an old version
125+
backupOldConfig();
126+
120127
SignShopConfig.init();
121128
SignShopBooks.init();
122129
PlayerMetadata.init();
@@ -278,6 +285,21 @@ private void registerSSListeners() {
278285
pm.registerEvents(new SharedMoneyTransaction(), this);
279286
}
280287

288+
private void backupOldConfig() {
289+
FileConfiguration ymlThing = configUtil.loadYMLFromPluginFolder(SignShopConfig.configFilename);
290+
File configFile = new File(SignShop.getInstance().getDataFolder(), SignShopConfig.configFilename);
291+
292+
if ((ymlThing != null && configFile.exists())
293+
&& (!ymlThing.isSet("ConfigVersionDoNotTouch") || ymlThing.getInt("ConfigVersionDoNotTouch") != SignShopConfig.getConfigVersionDoNotTouch())) {
294+
295+
SignShop.log("Old config detected, backing it up before modifiying it.", Level.INFO);
296+
File configBackup = new File(SignShop.getInstance().getDataFolder(), "configBackup" + SSTimeUtil.getDateTimeStamp() + ".yml");
297+
FileUtil.copy(configFile, configBackup);
298+
ymlThing.set("ConfigVersionDoNotTouch", SignShopConfig.getConfigVersionDoNotTouch());
299+
SignShopConfig.saveConfig(ymlThing, configFile);
300+
}
301+
}
302+
281303
private static class TransferFormatter extends Formatter {
282304
private final DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS");
283305

0 commit comments

Comments
 (0)