private static void plantCrop(Player p, Patch patch, int seedId) { if (p.getTemporaryAttribute("unmovable") != null) { return; } for (int i = 0; i < SEEDS.Length; i++) { if (seedId == (int)SEEDS[i][1]) { PatchType type = patch.getPatchType(); bool sapling = type.Equals(PatchType.TREE) || type.Equals(PatchType.FRUIT_TREE); string s = sapling ? "sapling" : "seeds."; string s1 = s.Equals("sapling") ? patch.getSeedIndex() == 33 || patch.getSeedIndex() == 38 || patch.getSeedIndex() == 40 ? "an " : "a " : ""; if (!patch.getPatchType().Equals(PatchType.VEGATABLE) && !patch.getPatchType().Equals(PatchType.VEGATABLE_1)) { if (!patch.getPatchType().Equals((PatchType)SEEDS[i][0])) { string s2 = !((PatchType)SEEDS[i][0]).Equals(PatchType.FRUIT_TREE) && !((PatchType)SEEDS[i][0]).Equals(PatchType.TREE)? "seed" : "tree"; p.getPackets().sendMessage("This type of " + s2 + " cannot be planted here."); return; } } else if (patch.getPatchType().Equals(PatchType.VEGATABLE) || patch.getPatchType().Equals(PatchType.VEGATABLE_1)) { if (!SEEDS[i][0].Equals(PatchType.VEGATABLE) && !SEEDS[i][0].Equals(PatchType.VEGATABLE_1)) { p.getPackets().sendMessage("This type of seed cannot be planted here."); return; } } int[] data = getDataForPatch(patch, i); if (data == null) { return; } patch.setSeedIndex(i); if (p.getSkills().getGreaterLevel(Skills.SKILL.FARMING) < (int)SEEDS[patch.getSeedIndex()][6]) { p.getPackets().sendMessage("You need a Farming level of " + (int)SEEDS[patch.getSeedIndex()][6] + " to plant " + s1 + "" + (string)SEEDS[patch.getSeedIndex()][7] + " seeds."); return; } int seedAmount = (int)PATCHES[patch.getPatchIndex()][8]; if (!p.getInventory().hasItemAmount((int)SEEDS[i][1], seedAmount)) { p.getPackets().sendMessage("This patch requires " + seedAmount + " seeds."); return; } if (!sapling) { if (!p.getInventory().hasItem(TOOLS[1])) { p.getPackets().sendMessage("You need a seed dibber to plant seeds."); return; } } else { if (!p.getInventory().hasItem(TOOLS[2])) { p.getPackets().sendMessage("You need a trowel to transfer the sapling from the pot to a farming patch."); return; } if (!p.getInventory().hasItem(TOOLS[3])) { p.getPackets().sendMessage("You need a spade to plant the salping."); return; } } int j = i; p.setLastAnimation(new Animation(2291)); p.setTemporaryAttribute("unmovable", true); Event plantCropEvent = new Event(1000); plantCropEvent.setAction(() => { plantCropEvent.stop(); if (p.getInventory().deleteItem((int)SEEDS[j][1], seedAmount)) { if (sapling) { p.getInventory().addItemOrGround(TOOLS[4]); } patch.setStatus(0); patch.setConfigArray(data); patch.setTimeToGrow((long)SEEDS[j][3]); setConfig(p, patch); p.removeTemporaryAttribute("unmovable"); string prefix = seedAmount > 1 ? "" + seedAmount : "a"; string suffix = seedAmount > 1 ? "seeds." : "seed."; if ((patch.getPatchType().Equals(PatchType.HERB) && (patch.getSeedIndex() == 20 || patch.getSeedIndex() == 21))) { prefix = "an"; } string message = sapling ? "You plant the " + (string)SEEDS[patch.getSeedIndex()][7] + " sapling." : "You plant " + prefix + " " + (string)SEEDS[patch.getSeedIndex()][7] + " " + suffix; p.getPackets().sendMessage(message); p.getSkills().addXp(Skills.SKILL.FARMING, (double)SEEDS[patch.getSeedIndex()][4]); } }); Server.registerEvent(plantCropEvent); break; } } }