commit
75790cb620
@ -0,0 +1,4 @@ |
||||
.classpath |
||||
.project |
||||
.settings |
||||
bin/ |
@ -0,0 +1,8 @@ |
||||
main: scramble.plugin.Template |
||||
name: MCRandomizer |
||||
author: sig |
||||
version: 1.0.0 |
||||
api-version: 1.13 |
||||
commands: |
||||
block: |
||||
description: Check a block's data. |
@ -0,0 +1,9 @@ |
||||
# Creepinson's Spigot Plugin Template for Complete Beginners |
||||
**Thank you for using my plugin template! It is free to use in any of your plugins, just please credit me. That's all I request.** |
||||
*This template includes an example command, and an example event listener.* |
||||
*This template also includes a few utilities made both by me, and some other programmers out there.* |
||||
## Usage |
||||
I am also providing a link to get Spigot's buildtools here: |
||||
https://www.spigotmc.org/wiki/buildtools |
||||
|
||||
|
@ -0,0 +1,9 @@ |
||||
package scramble.plugin; |
||||
|
||||
import org.bukkit.inventory.Recipe; |
||||
|
||||
public interface RecipeStore { |
||||
public void setResultItem(String item); |
||||
public void createRecipe(); |
||||
|
||||
} |
@ -0,0 +1,46 @@ |
||||
package scramble.plugin; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
|
||||
import org.bukkit.Bukkit; |
||||
import org.bukkit.Material; |
||||
import org.bukkit.inventory.ItemStack; |
||||
import org.bukkit.inventory.RecipeChoice; |
||||
import org.bukkit.inventory.RecipeChoice.MaterialChoice; |
||||
import org.bukkit.inventory.ShapedRecipe; |
||||
import org.bukkit.inventory.ShapelessRecipe; |
||||
|
||||
public class ShapedRecipeStore implements RecipeStore{ |
||||
public String finalItem; |
||||
public String[] shape; |
||||
public HashMap<Character,MaterialChoice> ingredientsMap = new HashMap<Character,MaterialChoice>(); |
||||
|
||||
public ShapedRecipeStore(String[] shape) { |
||||
this.shape=shape; |
||||
} |
||||
|
||||
@Override |
||||
public void createRecipe() { |
||||
ShapedRecipe sr = new ShapedRecipe(new ItemStack(Material.getMaterial(finalItem))); |
||||
sr.shape(shape); |
||||
for (Character c : ingredientsMap.keySet()) { |
||||
MaterialChoice m = ingredientsMap.get(c); |
||||
if (m==null) { |
||||
sr.setIngredient(c, Material.AIR); |
||||
} else { |
||||
sr.setIngredient(c, m); |
||||
} |
||||
} |
||||
Bukkit.getLogger().info("Added recipe for "+finalItem); |
||||
Bukkit.addRecipe(sr); |
||||
} |
||||
|
||||
@Override |
||||
public void setResultItem(String item) { |
||||
this.finalItem=item; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,31 @@ |
||||
package scramble.plugin; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
import org.bukkit.Bukkit; |
||||
import org.bukkit.Material; |
||||
import org.bukkit.inventory.ItemStack; |
||||
import org.bukkit.inventory.ShapelessRecipe; |
||||
|
||||
public class ShapelessRecipeStore implements RecipeStore{ |
||||
public List<String> craftingitems = new ArrayList<String>(); |
||||
public String finalItem; |
||||
|
||||
@Override |
||||
public void createRecipe() { |
||||
ShapelessRecipe sr = new ShapelessRecipe(new ItemStack(Material.getMaterial(finalItem))); |
||||
for (int i=0;i<craftingitems.size();i++) { |
||||
sr.addIngredient(Material.getMaterial(craftingitems.get(i))); |
||||
Bukkit.getLogger().info(" Added ingredient "+craftingitems.get(i)); |
||||
} |
||||
Bukkit.getLogger().info("Added recipe for "+finalItem); |
||||
Bukkit.addRecipe(sr); |
||||
} |
||||
|
||||
@Override |
||||
public void setResultItem(String item) { |
||||
this.finalItem=item; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,282 @@ |
||||
package scramble.plugin; |
||||
|
||||
import java.io.BufferedReader; |
||||
import java.io.File; |
||||
import java.io.FileNotFoundException; |
||||
import java.io.FileReader; |
||||
import java.io.IOException; |
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.HashMap; |
||||
import java.util.Iterator; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.Random; |
||||
import java.util.logging.Logger; |
||||
import net.md_5.bungee.api.ChatColor; |
||||
import org.bukkit.Bukkit; |
||||
import org.bukkit.Material; |
||||
import org.bukkit.Server; |
||||
import org.bukkit.World; |
||||
import org.bukkit.command.PluginCommand; |
||||
import org.bukkit.inventory.BlastingRecipe; |
||||
import org.bukkit.inventory.CampfireRecipe; |
||||
import org.bukkit.inventory.FurnaceRecipe; |
||||
import org.bukkit.inventory.ItemStack; |
||||
import org.bukkit.inventory.MerchantRecipe; |
||||
import org.bukkit.inventory.Recipe; |
||||
import org.bukkit.inventory.RecipeChoice; |
||||
import org.bukkit.inventory.RecipeChoice.MaterialChoice; |
||||
import org.bukkit.inventory.ShapedRecipe; |
||||
import org.bukkit.inventory.ShapelessRecipe; |
||||
import org.bukkit.inventory.SmokingRecipe; |
||||
import org.bukkit.inventory.StonecuttingRecipe; |
||||
import org.bukkit.plugin.PluginDescriptionFile; |
||||
import org.bukkit.plugin.PluginManager; |
||||
import org.bukkit.plugin.java.JavaPlugin; |
||||
import scramble.plugin.command.ExampleCommand; |
||||
import scramble.plugin.listener.ExampleListener; |
||||
|
||||
|
||||
|
||||
|
||||
public class Template |
||||
extends JavaPlugin |
||||
{ |
||||
public static final String CHAT_PREFIX = ChatColor.AQUA + "Scrambled Recipes"; |
||||
|
||||
private static Template plugin; |
||||
|
||||
public static List<String> craftingrecipes; |
||||
|
||||
public static List<String> smeltingrecipes; |
||||
|
||||
public static List<RecipeStore> recipeStorage; |
||||
public static List<String> shufflelist; |
||||
public static List<ItemStack> shufflelist2; |
||||
public static boolean enableRecipeModifications = false; |
||||
|
||||
PluginDescriptionFile pdfFile; |
||||
|
||||
public static Random r; |
||||
|
||||
public static Template getPlugin() |
||||
{ |
||||
return plugin; |
||||
} |
||||
|
||||
public static void ReadRecipeData() { |
||||
if (!enableRecipeModifications) { |
||||
File f = new File("recipe_data"); |
||||
ReadIntoList(f, craftingrecipes); |
||||
File f2 = new File("furnace_data"); |
||||
ReadIntoList(f2, smeltingrecipes); |
||||
plugin.getLogger().info("Loaded " + craftingrecipes.size() + " crafting entries, " + smeltingrecipes.size() + " furnace entries."); |
||||
String shape; |
||||
for (String s : craftingrecipes) |
||||
{ |
||||
String temp = s.substring(0, s.indexOf(",")); |
||||
s = s.substring(s.indexOf(",") + 1); |
||||
switch (temp) { |
||||
case "0": |
||||
{ |
||||
String[] split = s.replace(" ", "").split(","); |
||||
ShapelessRecipeStore srs = new ShapelessRecipeStore(); |
||||
for (int i = 0; i < split.length - 1; i++) { |
||||
srs.craftingitems.add(split[i]); |
||||
} |
||||
recipeStorage.add(srs); |
||||
shufflelist.add(split[(split.length - 1)]); |
||||
}break; |
||||
case "1":{ |
||||
shape = s.substring(s.indexOf('[') + 1, s.indexOf(']')); |
||||
String[] shape_split = shape.replace(" ", "").split(","); |
||||
s = s.substring(s.indexOf(']') + 1); |
||||
String itemsList = s.substring(s.indexOf('[') + 1, s.lastIndexOf(']')); |
||||
|
||||
String[] itemsSplit = itemsList.replace(" ", "").split("\\]\\["); |
||||
|
||||
ShapedRecipeStore srs = new ShapedRecipeStore(shape_split); |
||||
for (String s2 : itemsSplit) { |
||||
String[] splitter = s2.split(","); |
||||
|
||||
|
||||
List<Material> splitter2 = new ArrayList(); |
||||
for (int i = 1; i < splitter.length; i++) { |
||||
Material m = Material.getMaterial(splitter[i]); |
||||
|
||||
if (m != null) { |
||||
splitter2.add(m); |
||||
} |
||||
else { |
||||
splitter2.add(Material.AIR); |
||||
} |
||||
} |
||||
|
||||
srs.ingredientsMap.put(Character.valueOf(splitter[0].charAt(0)), new RecipeChoice.MaterialChoice(splitter2)); |
||||
} |
||||
recipeStorage.add(srs); |
||||
s = s.substring(s.lastIndexOf(',') + 1); |
||||
shufflelist.add(s); |
||||
} |
||||
break; |
||||
} |
||||
} |
||||
plugin.getLogger().info("There are " + recipeStorage.size() + " recipes and " + shufflelist.size() + " shuffle items."); |
||||
if (recipeStorage.size() != shufflelist.size()) { |
||||
plugin.getLogger().severe("Recipe storage and Shuffle list sizes DO NOT MATCH. Exiting here..."); |
||||
Bukkit.shutdown(); |
||||
} |
||||
|
||||
plugin.getLogger().info("Creating recipes..."); |
||||
while (shufflelist.size() > 0) |
||||
{ |
||||
Integer numb = Integer.valueOf(r.nextInt(recipeStorage.size())); |
||||
RecipeStore rs = (RecipeStore)recipeStorage.get(numb.intValue()); |
||||
rs.setResultItem((String)shufflelist.get(0)); |
||||
if ((rs instanceof ShapedRecipeStore)) { |
||||
ShapedRecipeStore rss = (ShapedRecipeStore)rs; |
||||
Bukkit.getLogger().info(Arrays.toString(rss.shape)); |
||||
for (Character c : rss.ingredientsMap.keySet()) { |
||||
Bukkit.getLogger().info(" " + c + ": " + rss.ingredientsMap.get(c)); |
||||
} |
||||
} |
||||
rs.createRecipe(); |
||||
shufflelist.remove(0); |
||||
recipeStorage.remove(rs); |
||||
} |
||||
plugin.getLogger().info("Done! All recipes shuffled!"); |
||||
} |
||||
} |
||||
|
||||
private static void ReadIntoList(File f, List<String> list) |
||||
{ |
||||
try { |
||||
FileReader fr = new FileReader(f); |
||||
BufferedReader br = new BufferedReader(fr); |
||||
String s = br.readLine(); |
||||
while (s != null) { |
||||
list.add(s); |
||||
s = br.readLine(); |
||||
} |
||||
br.close(); |
||||
fr.close(); |
||||
} catch (FileNotFoundException e) { |
||||
e.printStackTrace(); |
||||
} catch (IOException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
|
||||
public void AddInDefaultRecipes() { |
||||
ShapedRecipe sr = new ShapedRecipe(new ItemStack(Material.CRAFTING_TABLE)); |
||||
sr.shape(new String[]{"aa","aa"}); |
||||
sr.setIngredient('a', new RecipeChoice.MaterialChoice(new Material[]{ |
||||
Material.ACACIA_PLANKS, |
||||
Material.BIRCH_PLANKS, |
||||
Material.DARK_OAK_PLANKS, |
||||
Material.JUNGLE_PLANKS, |
||||
Material.OAK_PLANKS, |
||||
Material.SPRUCE_PLANKS, |
||||
})); |
||||
Bukkit.addRecipe(sr); |
||||
} |
||||
|
||||
|
||||
public void onEnable() |
||||
{ |
||||
craftingrecipes = new ArrayList(); |
||||
smeltingrecipes = new ArrayList(); |
||||
shufflelist = new ArrayList(); |
||||
shufflelist2 = new ArrayList(); |
||||
recipeStorage = new ArrayList(); |
||||
plugin = (Template)getPlugin(Template.class); |
||||
r = new Random(Bukkit.getWorld("world").getSeed()); |
||||
List<Recipe> defaultRecipes = new ArrayList(); |
||||
Iterator<Recipe> it = Bukkit.recipeIterator(); |
||||
while (it.hasNext()) { |
||||
Recipe r = (Recipe)it.next(); |
||||
defaultRecipes.add(r); |
||||
shufflelist2.add(r.getResult()); |
||||
Bukkit.getLogger().info("Found a recipe for " + r.getResult()); |
||||
} |
||||
Bukkit.clearRecipes(); |
||||
HashMap<String, Integer> recipeTypeMap = new HashMap(); |
||||
|
||||
while (shufflelist2.size() > 0) { |
||||
Recipe rr = (Recipe)defaultRecipes.get(r.nextInt(defaultRecipes.size())); |
||||
boolean modified=true; |
||||
try { |
||||
if ((rr instanceof BlastingRecipe)) { |
||||
BlastingRecipe br = (BlastingRecipe)rr; |
||||
BlastingRecipe newbr = new BlastingRecipe(br.getKey(), (ItemStack)shufflelist2.get(0), br.getInputChoice(), br.getExperience(), br.getCookingTime()); |
||||
Bukkit.addRecipe(newbr); |
||||
} |
||||
else if ((rr instanceof CampfireRecipe)) { |
||||
CampfireRecipe br = (CampfireRecipe)rr; |
||||
CampfireRecipe newbr = new CampfireRecipe(br.getKey(), (ItemStack)shufflelist2.get(0), br.getInputChoice(), br.getExperience(), br.getCookingTime()); |
||||
Bukkit.addRecipe(newbr); |
||||
} |
||||
/*else if ((rr instanceof FurnaceRecipe)) { |
||||
FurnaceRecipe br = (FurnaceRecipe)rr; |
||||
FurnaceRecipe newbr = new FurnaceRecipe(br.getKey(), (ItemStack)shufflelist2.get(0), br.getInputChoice(), br.getExperience(), br.getCookingTime()); |
||||
Bukkit.addRecipe(newbr); |
||||
}*/ |
||||
else if ((rr instanceof MerchantRecipe)) { |
||||
MerchantRecipe br = (MerchantRecipe)rr; |
||||
MerchantRecipe newbr = new MerchantRecipe((ItemStack)shufflelist2.get(0), br.getUses(), br.getMaxUses(), true, br.getVillagerExperience(), br.getPriceMultiplier()); |
||||
Bukkit.addRecipe(newbr); |
||||
} |
||||
/*else if ((rr instanceof ShapedRecipe)) { |
||||
ShapedRecipe br = (ShapedRecipe)rr; |
||||
ShapedRecipe newbr = new ShapedRecipe((ItemStack)shufflelist2.get(0)); |
||||
newbr.shape(br.getShape()); |
||||
|
||||
for (Character c : br.getChoiceMap().keySet()) |
||||
{ |
||||
newbr.setIngredient(c.charValue(), (RecipeChoice)br.getChoiceMap().get(c)); |
||||
} |
||||
Bukkit.addRecipe(newbr); |
||||
} |
||||
else if ((rr instanceof ShapelessRecipe)) { |
||||
ShapelessRecipe br = (ShapelessRecipe)rr; |
||||
ShapelessRecipe newbr = new ShapelessRecipe((ItemStack)shufflelist2.get(0)); |
||||
for (ItemStack i : br.getIngredientList()) { |
||||
newbr.addIngredient(i.getType()); |
||||
} |
||||
Bukkit.addRecipe(newbr); |
||||
}*/ |
||||
else if ((rr instanceof SmokingRecipe)) { |
||||
SmokingRecipe br = (SmokingRecipe)rr; |
||||
SmokingRecipe newbr = new SmokingRecipe(br.getKey(), (ItemStack)shufflelist2.get(0), br.getInputChoice(), br.getExperience(), br.getCookingTime()); |
||||
Bukkit.addRecipe(newbr); |
||||
} |
||||
else if ((rr instanceof StonecuttingRecipe)) { |
||||
StonecuttingRecipe br = (StonecuttingRecipe)rr; |
||||
StonecuttingRecipe newbr = new StonecuttingRecipe(br.getKey(), (ItemStack)shufflelist2.get(0), br.getInputChoice()); |
||||
Bukkit.addRecipe(newbr); |
||||
} else { |
||||
modified=false; |
||||
} |
||||
} |
||||
catch (IllegalStateException localIllegalStateException) {} |
||||
|
||||
if (modified) { |
||||
recipeTypeMap.put(rr.getClass().getName(), Integer.valueOf(recipeTypeMap.containsKey(rr.getClass().getName()) ? ((Integer)recipeTypeMap.get(rr.getClass().getName())).intValue() + 1 : 1)); |
||||
} |
||||
shufflelist2.remove(0); |
||||
} |
||||
ReadRecipeData(); |
||||
AddInDefaultRecipes(); |
||||
|
||||
for (String s : recipeTypeMap.keySet()) { |
||||
Bukkit.getLogger().info(" Randomized " + recipeTypeMap.get(s) + " " + s + " recipes."); |
||||
} |
||||
|
||||
PluginManager pm = getServer().getPluginManager(); |
||||
|
||||
getCommand("block").setExecutor(new ExampleCommand()); |
||||
|
||||
pm.registerEvents(new ExampleListener(), this); |
||||
} |
||||
} |
@ -0,0 +1,54 @@ |
||||
package scramble.plugin.command; |
||||
|
||||
import static scramble.plugin.Template.CHAT_PREFIX; |
||||
|
||||
import org.bukkit.command.Command; |
||||
import org.bukkit.command.CommandExecutor; |
||||
import org.bukkit.command.CommandSender; |
||||
import org.bukkit.command.ConsoleCommandSender; |
||||
import org.bukkit.entity.Player; |
||||
import org.bukkit.inventory.ItemStack; |
||||
import org.bukkit.inventory.meta.BlockDataMeta; |
||||
|
||||
import net.md_5.bungee.api.ChatColor; |
||||
import scramble.plugin.Template; |
||||
|
||||
// All command classes need to implement the CommandExecutor interface to be a proper command!
|
||||
public class ExampleCommand implements CommandExecutor { |
||||
|
||||
/* Called when the command is ran |
||||
args variable is the commands arguments in an array of strings. |
||||
sender variable is the sender who ran the command |
||||
*/ |
||||
@Override |
||||
public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) { |
||||
|
||||
/* Checks if the sender is sending from the console |
||||
CHAT_PREFIX is the variable from the Template plugin class and can be removed |
||||
if unwanted. |
||||
*/ |
||||
if (!(sender instanceof Player)) { |
||||
sender.sendMessage(CHAT_PREFIX + ChatColor.WHITE + " > " + ChatColor.RED + "You cannot run this command from the console!"); |
||||
return false; |
||||
} |
||||
/* |
||||
* Since we made sure the sender is a player, we can create a new player |
||||
* variable using our sender |
||||
*/ |
||||
Player p = (Player) sender; |
||||
|
||||
/* |
||||
* checks if First argument (/command FIRSTARGUMENT) is equal to the string In |
||||
* this case, the command would be: /example sayhi |
||||
*/ |
||||
if (cmd.getName().equalsIgnoreCase("block")) { |
||||
if (p.getInventory().getItemInMainHand()!=null) { |
||||
ItemStack it = p.getInventory().getItemInMainHand(); |
||||
p.sendMessage(it.toString()); |
||||
} |
||||
return true; |
||||
} |
||||
return false; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,133 @@ |
||||
package scramble.plugin.listener; |
||||
|
||||
import java.io.File; |
||||
import java.io.FileWriter; |
||||
import java.io.IOException; |
||||
import java.util.Arrays; |
||||
import java.util.Map; |
||||
|
||||
import org.bukkit.Bukkit; |
||||
import org.bukkit.Material; |
||||
import org.bukkit.entity.Player; |
||||
import org.bukkit.event.EventHandler; |
||||
import org.bukkit.event.Listener; |
||||
import org.bukkit.event.block.BlockBreakEvent; |
||||
import org.bukkit.event.inventory.CraftItemEvent; |
||||
import org.bukkit.event.inventory.FurnaceSmeltEvent; |
||||
import org.bukkit.event.inventory.PrepareItemCraftEvent; |
||||
import org.bukkit.inventory.ItemStack; |
||||
import org.bukkit.inventory.Recipe; |
||||
import org.bukkit.inventory.RecipeChoice; |
||||
import org.bukkit.inventory.ShapedRecipe; |
||||
import org.bukkit.inventory.ShapelessRecipe; |
||||
|
||||
import net.md_5.bungee.api.ChatColor; |
||||
import scramble.plugin.Template; |
||||
|
||||
public class ExampleListener implements Listener { |
||||
|
||||
@EventHandler |
||||
public void onBlockBreak(BlockBreakEvent event) { |
||||
/* |
||||
* We get the player and make a variable to make it easier to access it when we |
||||
* need to use it. |
||||
*/ |
||||
//Player p = event.getPlayer();
|
||||
/* |
||||
* Here we cancel the event. This means that they can't break the block. In this |
||||
* case, we send a message to the player saying they don't have the required |
||||
* permission. |
||||
*/ |
||||
/*if (!p.hasPermission("template.breakblocks")) { |
||||
p.sendMessage(Template.CHAT_PREFIX + ChatColor.WHITE + " > " + ChatColor.RED + "You do not have permission to break blocks!"); |
||||
event.setCancelled(true); |
||||
}*/ |
||||
} |
||||
|
||||
@EventHandler |
||||
public void onCraftItemEvent(CraftItemEvent ev) { |
||||
/*for (in |
||||
//ev.getViewers().get(0).sendMessagt i=0;i<9;i++) {
|
||||
//ev.getViewers().get(0).sendMessage(ev.getInventory().getItem(0).getData().toString());
|
||||
}*/ |
||||
//ev.getInventory().getSize()
|
||||
|
||||
if (Template.enableRecipeModifications) { |
||||
Recipe rec = ev.getRecipe(); |
||||
if (rec instanceof ShapelessRecipe) { |
||||
StringBuilder sb = new StringBuilder("0"); |
||||
ShapelessRecipe rec2 = (ShapelessRecipe)rec; |
||||
for (int i=0;i<rec2.getIngredientList().size();i++) { |
||||
//ev.getViewers().get(0).sendMessage(rec2.getIngredientList().get(i).getData().toString());
|
||||
sb.append(","+getCutItemStackData(rec2.getIngredientList().get(i))); |
||||
} |
||||
sb.append(","+getCutItemStackData(rec2.getResult())); |
||||
SaveData(ev, sb); |
||||
} |
||||
if (rec instanceof ShapedRecipe) { |
||||
ShapedRecipe rec2 = (ShapedRecipe)rec; |
||||
Map<Character,RecipeChoice> map1 = rec2.getChoiceMap(); |
||||
Map<Character,ItemStack> map2 = rec2.getIngredientMap(); |
||||
StringBuilder sb = new StringBuilder("1"); |
||||
//ev.getViewers().get(0).sendMessage(Arrays.toString(rec2.getShape()));
|
||||
sb.append(","+Arrays.toString(rec2.getShape())); |
||||
for (Character c : map1.keySet()) { |
||||
//ItemStack it = map2.get(c).;
|
||||
sb.append("["+c+","+getCutChoices(map1.get(c))+"]"); |
||||
//ev.getViewers().get(0).sendMessage(c+","+map1.get(c));
|
||||
//ev.getViewers().get(0).sendMessage(rec2.getIngredientList().get(i).getData().toString());
|
||||
} |
||||
sb.append(","+getCutItemStackData(rec2.getResult())); |
||||
SaveData(ev, sb); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@EventHandler |
||||
public void onSmeltItemEvent(FurnaceSmeltEvent ev) { |
||||
if (Template.enableRecipeModifications) { |
||||
Player p = Bukkit.getPlayer("sigonasr2"); |
||||
if (p!=null && p.isOnline()) { |
||||
StringBuilder sb = new StringBuilder(getCutItemStackData(ev.getSource())); |
||||
sb.append(","+getCutItemStackData(ev.getResult())); |
||||
Template.smeltingrecipes.add(sb.toString()); |
||||
p.sendMessage("Item["+Template.smeltingrecipes.size()+"] "+sb.toString()+" added."); |
||||
File f = new File("furnace_data"); |
||||
try{ |
||||
FileWriter fw = new FileWriter(f,true); |
||||
fw.write(sb.toString()+"\n"); |
||||
fw.close(); |
||||
} catch (IOException e) { |
||||
|
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
public String getCutItemStackData(ItemStack it) { |
||||
String s=it.toString().replace("ItemStack{", ""); |
||||
return s.substring(0,s.indexOf(' ')); |
||||
} |
||||
public String getCutChoices(RecipeChoice c) { |
||||
if (c!=null) { |
||||
String s = c.toString().replace("MaterialChoice{choices=[", ""); |
||||
return s.substring(0,s.indexOf(']')); |
||||
} else { |
||||
return "NULL"; |
||||
} |
||||
} |
||||
|
||||
private void SaveData(CraftItemEvent ev, StringBuilder sb) { |
||||
Template.craftingrecipes.add(sb.toString()); |
||||
ev.getViewers().get(0).sendMessage("Item["+Template.craftingrecipes.size()+"] " +sb.toString()+" added."); |
||||
|
||||
File f = new File("recipe_data"); |
||||
try { |
||||
FileWriter fw = new FileWriter(f,true); |
||||
fw.write(sb.toString()+"\n"); |
||||
fw.close(); |
||||
} catch (IOException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue