From a443cc893cf8908a1d0528e6f02468cb7b3dd70a Mon Sep 17 00:00:00 2001 From: mozipi Date: Sun, 21 Apr 2013 19:17:30 +0900 Subject: [PATCH] =?utf8?q?ChemicalCrops=E3=81=AE=E3=83=95=E3=82=A1?= =?utf8?q?=E3=82=A4=E3=83=AB=E7=94=9F=E6=88=90=E3=81=AB=E6=9F=94=E8=BB=9F?= =?utf8?q?=E6=80=A7=E3=81=8C=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F=E3=81=AE?= =?utf8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- common/pcc/addon/crops/ChemicalCrops.java | 19 ++++++++++++++++++- .../pcc/addon/crops/blocks/BlockChemicalCrops1.java | 2 +- common/pcc/addon/crops/util/WorldEventHandler.java | 11 +++++------ common/pcc/chemicraft/ChemiCraft.java | 3 +++ common/pcc/chemicraft/core/ChemiCraftCore.java | 1 + common/pcc/chemicraft/util/UserNameOnKick.java | 16 ++++++++++++++++ 6 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 common/pcc/chemicraft/util/UserNameOnKick.java diff --git a/common/pcc/addon/crops/ChemicalCrops.java b/common/pcc/addon/crops/ChemicalCrops.java index 015708c..38f7b1d 100644 --- a/common/pcc/addon/crops/ChemicalCrops.java +++ b/common/pcc/addon/crops/ChemicalCrops.java @@ -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; + } + + /** * プラントデータ自動セーブを開始します。
* すでに停止している場合はNullPointerExceptionをスローします。 */ diff --git a/common/pcc/addon/crops/blocks/BlockChemicalCrops1.java b/common/pcc/addon/crops/blocks/BlockChemicalCrops1.java index e760b3c..29a6ff3 100644 --- a/common/pcc/addon/crops/blocks/BlockChemicalCrops1.java +++ b/common/pcc/addon/crops/blocks/BlockChemicalCrops1.java @@ -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 diff --git a/common/pcc/addon/crops/util/WorldEventHandler.java b/common/pcc/addon/crops/util/WorldEventHandler.java index 24b90c5..6818598 100644 --- a/common/pcc/addon/crops/util/WorldEventHandler.java +++ b/common/pcc/addon/crops/util/WorldEventHandler.java @@ -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(); } diff --git a/common/pcc/chemicraft/ChemiCraft.java b/common/pcc/chemicraft/ChemiCraft.java index b705318..6756a6b 100644 --- a/common/pcc/chemicraft/ChemiCraft.java +++ b/common/pcc/chemicraft/ChemiCraft.java @@ -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 diff --git a/common/pcc/chemicraft/core/ChemiCraftCore.java b/common/pcc/chemicraft/core/ChemiCraftCore.java index 3e80c03..3ea80e4 100644 --- a/common/pcc/chemicraft/core/ChemiCraftCore.java +++ b/common/pcc/chemicraft/core/ChemiCraftCore.java @@ -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 index 0000000..30d80e4 --- /dev/null +++ b/common/pcc/chemicraft/util/UserNameOnKick.java @@ -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; + } + } + +} -- 2.11.0