Преглед изворни кода

error logger split from debug logger, store custom spawn on disk

Kajetan Johannes Hammerle пре 4 година
родитељ
комит
5fb0cb64e3

+ 1 - 1
src/main/java/me/km/databank/DataBank.java

@@ -27,7 +27,7 @@ public class DataBank {
             // The newInstance() call is a work around for some broken Java implementations
             Class.forName("com.mysql.jdbc.Driver").newInstance();
             c = DriverManager.getConnection("jdbc:mysql://localhost/minecraft?useSSL=false", user, password);
-            logger.print("connection to datebank etablished");
+            logger.print("connection to databank etablished");
             return true;
         } catch(ClassNotFoundException | IllegalAccessException | InstantiationException | SQLException ex) {
             logger.print(ex);

+ 27 - 10
src/main/java/me/km/snuviscript/SnuviLogger.java

@@ -8,13 +8,19 @@ import net.minecraft.server.MinecraftServer;
 import net.minecraft.util.text.StringTextComponent;
 
 public class SnuviLogger implements ISnuviLogger {
-    private boolean printToConsole = true;
+    private boolean printErrorToConsole = true;
+    private boolean printDebugToConsole = true;
     private MinecraftServer server = null;
     private Permissions perms = null;
-    private final RingArray<String> history = new RingArray(100);
+    private final RingArray<String> debugHistory = new RingArray(100);
+    private final RingArray<String> errorHistory = new RingArray(100);
 
-    public void setConsoleLogging(boolean b) {
-        printToConsole = b;
+    public void setConsoleErrorLogging(boolean b) {
+        printErrorToConsole = b;
+    }
+
+    public void setConsoleDebugLogging(boolean b) {
+        printDebugToConsole = b;
     }
 
     public void setPlayerLoggingData(MinecraftServer server, Permissions perms) {
@@ -22,8 +28,12 @@ public class SnuviLogger implements ISnuviLogger {
         this.perms = perms;
     }
 
-    public RingArray<String> getHistory() {
-        return history;
+    public RingArray<String> getDebugHistory() {
+        return debugHistory;
+    }
+
+    public RingArray<String> getErrorHistory() {
+        return errorHistory;
     }
 
     @Override
@@ -34,7 +44,7 @@ public class SnuviLogger implements ISnuviLogger {
         String color;
         if(ex == null) {
             color = "§e";
-            sb.append(color).append("debug: '§r").append(message).append(color).append("'");
+            sb.append(color).append(message).append("§r");
         } else {
             color = "§c";
             sb.append(color).append(ex.getClass().getSimpleName()).append("§r: '").append(color).append(ex.getMessage());
@@ -57,10 +67,17 @@ public class SnuviLogger implements ISnuviLogger {
         }
 
         String s = sb.toString();
-        history.add(s);
         StringTextComponent text = new StringTextComponent(s);
-        if(printToConsole && server != null) {
-            server.sendMessage(text);
+        if(ex == null) {
+            debugHistory.add(s);
+            if(printDebugToConsole && server != null) {
+                server.sendMessage(text);
+            }
+        } else {
+            errorHistory.add(s);
+            if(printErrorToConsole && server != null) {
+                server.sendMessage(text);
+            }
         }
         if(server != null && perms != null && server.getPlayerList() != null) {
             server.getPlayerList().getPlayers().forEach(p -> {

+ 1 - 1
src/main/java/me/km/snuviscript/commands/EntityCommands.java

@@ -225,7 +225,7 @@ public class EntityCommands {
             if(base.isPotionActive(potion)) {
                 base.removePotionEffect(potion);
             }
-            boolean showParticles = in.length >= 3 ? in[2].getBoolean(sc) : true;
+            boolean showParticles = in.length >= 5 ? in[4].getBoolean(sc) : true;
             base.addPotionEffect(new EffectInstance(potion, in[2].getInt(sc), in[3].getInt(sc), false, showParticles));
         });
         sm.registerConsumer("entity.cleareffects", (sc, in) -> {

+ 16 - 4
src/main/java/me/km/snuviscript/commands/ErrorCommands.java

@@ -6,16 +6,28 @@ import me.km.snuviscript.SnuviLogger;
 public class ErrorCommands {
     public static void registerFunctions(ScriptManager sm) {
         sm.registerConsumer("error.clear", (sc, in) -> {
-            ((SnuviLogger) sm.getLogger()).getHistory().clear();
+            ((SnuviLogger) sm.getLogger()).getErrorHistory().clear();
         });
         sm.registerFunction("error.getsize", (sc, in) -> {
-            return (double) ((SnuviLogger) sm.getLogger()).getHistory().getLength();
+            return (double) ((SnuviLogger) sm.getLogger()).getErrorHistory().getLength();
         });
         sm.registerFunction("error.getindex", (sc, in) -> {
-            return ((SnuviLogger) sm.getLogger()).getHistory().get(in[0].getInt(sc));
+            return ((SnuviLogger) sm.getLogger()).getErrorHistory().get(in[0].getInt(sc));
         });
         sm.registerConsumer("error.setconsoleprint", (sc, in) -> {
-            ((SnuviLogger) sm.getLogger()).setConsoleLogging(in[0].getBoolean(sc));
+            ((SnuviLogger) sm.getLogger()).setConsoleErrorLogging(in[0].getBoolean(sc));
+        });
+        sm.registerConsumer("debug.clear", (sc, in) -> {
+            ((SnuviLogger) sm.getLogger()).getDebugHistory().clear();
+        });
+        sm.registerFunction("debug.getsize", (sc, in) -> {
+            return (double) ((SnuviLogger) sm.getLogger()).getDebugHistory().getLength();
+        });
+        sm.registerFunction("debug.getindex", (sc, in) -> {
+            return ((SnuviLogger) sm.getLogger()).getDebugHistory().get(in[0].getInt(sc));
+        });
+        sm.registerConsumer("debug.setconsoleprint", (sc, in) -> {
+            ((SnuviLogger) sm.getLogger()).setConsoleDebugLogging(in[0].getBoolean(sc));
         });
     }
 }

+ 4 - 2
src/main/java/me/km/snuviscript/commands/WorldCommands.java

@@ -10,6 +10,7 @@ import net.minecraft.server.MinecraftServer;
 import net.minecraft.world.Difficulty;
 import net.minecraft.world.GameRules;
 import net.minecraft.world.World;
+import net.minecraft.world.server.ServerWorld;
 import net.minecraft.world.storage.WorldInfo;
 
 public class WorldCommands {
@@ -43,11 +44,12 @@ public class WorldCommands {
         });
         sm.registerConsumer("world.setspawn", (sc, in) -> {
             Location l = ((Location) in[0].get(sc));
-            l.getWorld().getDimension().setSpawnPoint(l.getBlockPos());
+            l.getWorld().getWorldInfo().setSpawn(l.getBlockPos());
         });
         sm.registerFunction("world.getspawn", (sc, in) -> {
             World w = (World) in[0].get(sc);
-            return new Location(w, w.getSpawnPoint());
+            WorldInfo info = w.getWorldInfo();
+            return new Location(w, info.getSpawnX(), info.getSpawnY(), info.getSpawnZ(), 0.0f, 0.0f);
         });
         sm.registerFunction("world.getall", (sc, in) -> {
             ArrayList<World> worlds = new ArrayList<>();

+ 32 - 0
src/main/java/me/km/world/ModWorldInfo.java

@@ -10,6 +10,7 @@ import me.km.utils.ReflectionUtils;
 import net.minecraft.nbt.CompoundNBT;
 import net.minecraft.nbt.ListNBT;
 import net.minecraft.server.MinecraftServer;
+import net.minecraft.util.math.BlockPos;
 import net.minecraft.world.GameRules;
 import static net.minecraft.world.GameRules.*;
 import net.minecraft.world.WorldType;
@@ -42,6 +43,9 @@ public class ModWorldInfo extends DerivedWorldInfo {
     private int thunderTime;
     private Difficulty difficulty;
     private final GameRules gameRules = new GameRules();
+    private int spawnX;
+    private int spawnY;
+    private int spawnZ;
 
     private Type type;
 
@@ -58,6 +62,9 @@ public class ModWorldInfo extends DerivedWorldInfo {
     }
 
     private void onLoad(WorldInfo info, MinecraftServer server) {
+        spawnX = config.getInt("spawnX", info.getSpawnX());
+        spawnY = config.getInt("spawnY", info.getSpawnY());
+        spawnZ = config.getInt("spawnZ", info.getSpawnZ());
         gameTime = config.getLong("gameTime", info.getGameTime());
         dayTime = config.getLong("dayTime", info.getDayTime());
         clearWeatherTime = config.getInt("clearWeatherTime", info.getClearWeatherTime());
@@ -113,6 +120,9 @@ public class ModWorldInfo extends DerivedWorldInfo {
     }
 
     public void onSave() {
+        config.set("spawnX", spawnX);
+        config.set("spawnY", spawnY);
+        config.set("spawnZ", spawnZ);
         config.set("gameTime", gameTime);
         config.set("dayTime", dayTime);
         config.set("clearWeatherTime", clearWeatherTime);
@@ -272,4 +282,26 @@ public class ModWorldInfo extends DerivedWorldInfo {
         }
         return super.getGeneratorOptions();
     }
+
+    @Override
+    public void setSpawn(BlockPos spawnPoint) {
+        spawnX = spawnPoint.getX();
+        spawnY = spawnPoint.getY();
+        spawnZ = spawnPoint.getZ();
+    }
+
+    @Override
+    public int getSpawnX() {
+        return spawnX;
+    }
+    
+    @Override
+    public int getSpawnY() {
+        return spawnY;
+    }
+    
+    @Override
+    public int getSpawnZ() {
+        return spawnZ;
+    }
 }