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;
/**
* プラントデータ書き込み&読み込みのストリーム
*/
- public static final MultiBlockDataStream dataStream = new MultiBlockDataStream(System.getProperty("user.dir") + "/saves/", "ChemicalCrops.dat");
+ private static MultiBlockDataStream dataStream;
/**
* Texture Domain.
*/
private Thread thread;
+ /**
+ * Minecraftのディレクトリパス
+ */
+ private static String MINECRAFT_DIR;
+
public ChemicalCrops() {
this.thread = new Thread() {
@Override
@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();
}
/**
+ * データストリームを返します
+ * @return データストリーム
+ */
+ public static MultiBlockDataStream getDataStream() {
+ return dataStream;
+ }
+
+ /**
* プラントデータ自動セーブを開始します。<br>
* すでに停止している場合はNullPointerExceptionをスローします。
*/
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
@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();
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();
}
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;
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
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);
--- /dev/null
+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;
+ }
+ }
+
+}