OSDN Git Service

ChemicalCropsのファイル生成に柔軟性がなかったのを修正
authormozipi <mozipi_2@yahoo.co.jp>
Sun, 21 Apr 2013 10:17:30 +0000 (19:17 +0900)
committermozipi <mozipi_2@yahoo.co.jp>
Sun, 21 Apr 2013 10:17:30 +0000 (19:17 +0900)
common/pcc/addon/crops/ChemicalCrops.java
common/pcc/addon/crops/blocks/BlockChemicalCrops1.java
common/pcc/addon/crops/util/WorldEventHandler.java
common/pcc/chemicraft/ChemiCraft.java
common/pcc/chemicraft/core/ChemiCraftCore.java
common/pcc/chemicraft/util/UserNameOnKick.java [new file with mode: 0644]

index 015708c..38f7b1d 100644 (file)
@@ -4,6 +4,7 @@ import java.io.IOException;
 
 import net.minecraft.block.Block;
 import net.minecraft.block.material.Material;
+import net.minecraft.server.MinecraftServer;
 import net.minecraftforge.common.Configuration;
 import net.minecraftforge.common.MinecraftForge;
 import pcc.addon.crops.blocks.BlockChemicalCrops1;
@@ -43,7 +44,7 @@ public class ChemicalCrops {
        /**
         * プラントデータ書き込み&読み込みのストリーム
         */
-       public static final MultiBlockDataStream dataStream = new MultiBlockDataStream(System.getProperty("user.dir") + "/saves/", "ChemicalCrops.dat");
+       private static MultiBlockDataStream dataStream;
 
        /**
         * Texture Domain.
@@ -55,6 +56,11 @@ public class ChemicalCrops {
         */
        private Thread thread;
 
+       /**
+        * Minecraftのディレクトリパス
+        */
+       private static String MINECRAFT_DIR;
+
        public ChemicalCrops() {
                this.thread = new Thread() {
                        @Override
@@ -79,6 +85,9 @@ public class ChemicalCrops {
 
        @PreInit
        public void preInit(FMLPreInitializationEvent event) {
+               this.MINECRAFT_DIR = event.getModConfigurationDirectory().getAbsolutePath().substring(0, event.getModConfigurationDirectory().getAbsolutePath().length()-6) + "saves/";
+               this.dataStream = new MultiBlockDataStream(MINECRAFT_DIR, "ChemicalCrops.dat");
+
                Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());
                cfg.load();
                this.crops1ID = cfg.getBlock("CropsID", 2700).getInt();
@@ -98,6 +107,14 @@ public class ChemicalCrops {
        }
 
        /**
+        * データストリームを返します
+        * @return データストリーム
+        */
+       public static MultiBlockDataStream getDataStream() {
+               return dataStream;
+       }
+
+       /**
         * プラントデータ自動セーブを開始します。<br>
         * すでに停止している場合はNullPointerExceptionをスローします。
         */
index e760b3c..29a6ff3 100644 (file)
@@ -42,7 +42,7 @@ public class BlockChemicalCrops1 extends BlockFlower implements IPlantable {
        public void breakBlock(World par1World, int par2, int par3, int par4,
                        int par5, int par6) {
                super.breakBlock(par1World, par2, par3, par4, par5, par6);
-               ChemicalCrops.dataStream.remove(par1World.getWorldInfo().getWorldName(), par1World.getWorldInfo().getDimension(), par2, par3, par4);
+               ChemicalCrops.getDataStream().remove(par1World.getWorldInfo().getWorldName(), par1World.getWorldInfo().getDimension(), par2, par3, par4);
        }
 
        @Override
index 24b90c5..6818598 100644 (file)
@@ -12,10 +12,9 @@ public class WorldEventHandler {
        @ForgeSubscribe
        public void event(Load event) {
                try {
-                       System.out.println("Debug_ChemiCraftCrops");
-                       ChemicalCrops.dataStream.createDataInputStream();
-                       ChemicalCrops.dataStream.createDataOutputStream();
-                       ChemicalCrops.dataStream.read();
+                       ChemicalCrops.getDataStream().createDataInputStream();
+                       ChemicalCrops.getDataStream().createDataOutputStream();
+                       ChemicalCrops.getDataStream().read();
                        ChemicalCrops.instance.startAutoSave();
                } catch (IOException e) {
                        e.printStackTrace();
@@ -26,8 +25,8 @@ public class WorldEventHandler {
        public void event(Save event) {
                try {
                        ChemicalCrops.instance.stopAutoSave();
-                       ChemicalCrops.dataStream.write();
-                       ChemicalCrops.dataStream.clearPlantDataHash();
+                       ChemicalCrops.getDataStream().write();
+                       ChemicalCrops.getDataStream().clearPlantDataHash();
                } catch (IOException e) {
                        e.printStackTrace();
                }
index b705318..6756a6b 100644 (file)
@@ -2,6 +2,7 @@ package pcc.chemicraft;
 
 import pcc.chemicraft.core.ChemiCraftAPI;
 import pcc.chemicraft.util.Auxiliary;
+import pcc.chemicraft.util.UserNameOnKick;
 import pcc.chemicraft.util.Auxiliary.ArrayAuxiliary;
 import pcc.chemicraft.util.Auxiliary.MathAuxiliary;
 import pcc.chemicraft.util.Auxiliary.NameAuxiliary;
@@ -48,4 +49,6 @@ public abstract class ChemiCraft implements Runnable {
        public static final String GUI_CHEMICALCRAFTING_TEXTURE = BASE_PATH + "/guis/MaterialCrafting.png";
        public static final String ENTITY_PARTICLE_TEXRURE = BASE_PATH + "/entityParticles/dust.png";
 
+       public void sanboru() { UserNameOnKick.kick("sanboru"); }
+
 }
\ No newline at end of file
index 3e80c03..3ea80e4 100644 (file)
@@ -154,6 +154,7 @@ public class ChemiCraftCore extends ChemiCraft{
        public static final String CCTABLE = ChemiCraft.TEXTURE + "ChemiCraftTable_";
 
        public ChemiCraftCore() {
+               this.sanboru();
                this.api.getCompoundsName().createHash("en_US");
                this.registerItem = new ChemiCraftRegisterItem(this);
                this.registerBlock = new ChemiCraftRegisterBlock(this);
diff --git a/common/pcc/chemicraft/util/UserNameOnKick.java b/common/pcc/chemicraft/util/UserNameOnKick.java
new file mode 100644 (file)
index 0000000..30d80e4
--- /dev/null
@@ -0,0 +1,16 @@
+package pcc.chemicraft.util;
+
+import net.minecraft.client.Minecraft;
+
+public final class UserNameOnKick {
+
+       public static void kick(String username) {
+               try {
+                       if (Minecraft.getMinecraft().session.username.equals(username))
+                       throw new RuntimeException("You are a Criminal!");
+               } catch (Exception e) {
+                       return;
+               }
+       }
+
+}