mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 11:03:43 +01:00 
			
		
		
		
	Merge branch 'master' of github.com:mcMMO-Dev/mcmmo into configurable
This commit is contained in:
		@@ -1,3 +1,4 @@
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
Version 2.2.0
 | 
			
		||||
    !!!!!!!!!!!!!!!!!!!!!!!!
 | 
			
		||||
    !!!!!!!!!!!!!!!!!!!!!!!!
 | 
			
		||||
@@ -203,6 +204,9 @@ Version 2.2.0
 | 
			
		||||
    Added API method to check if a skill was being level capped
 | 
			
		||||
    Added 'UndefinedSkillBehaviour' for trying to use a method that has no behaviour defined for the provided skill
 | 
			
		||||
 | 
			
		||||
Version 2.1.116
 | 
			
		||||
    Fixed directional plants not maintaining their direction when replanted
 | 
			
		||||
 | 
			
		||||
Version 2.1.115
 | 
			
		||||
    Green Thumb now requires a hoe to activate
 | 
			
		||||
    Hoes no longer give free replants
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,11 @@ import com.gmail.nossr50.mcMMO;
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.block.Block;
 | 
			
		||||
import org.bukkit.block.BlockFace;
 | 
			
		||||
import org.bukkit.block.BlockState;
 | 
			
		||||
import org.bukkit.block.data.Ageable;
 | 
			
		||||
import org.bukkit.block.data.BlockData;
 | 
			
		||||
import org.bukkit.block.data.Directional;
 | 
			
		||||
import org.bukkit.event.block.BlockBreakEvent;
 | 
			
		||||
import org.bukkit.scheduler.BukkitRunnable;
 | 
			
		||||
 | 
			
		||||
@@ -19,6 +22,7 @@ public class DelayedCropReplant extends BukkitRunnable {
 | 
			
		||||
    private boolean wasImmaturePlant;
 | 
			
		||||
    private final BlockBreakEvent blockBreakEvent;
 | 
			
		||||
    private final mcMMO pluginRef;
 | 
			
		||||
    private BlockFace cropFace;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Replants a crop after a delay setting the age to desiredCropAge
 | 
			
		||||
@@ -27,6 +31,13 @@ public class DelayedCropReplant extends BukkitRunnable {
 | 
			
		||||
     */
 | 
			
		||||
    public DelayedCropReplant(mcMMO pluginRef, BlockBreakEvent blockBreakEvent, BlockState cropState, int desiredCropAge, boolean wasImmaturePlant) {
 | 
			
		||||
        this.pluginRef = pluginRef;
 | 
			
		||||
        BlockData cropData = cropState.getBlockData();
 | 
			
		||||
 | 
			
		||||
        if(cropData instanceof Directional) {
 | 
			
		||||
            Directional cropDir = (Directional) cropData;
 | 
			
		||||
            cropFace = cropDir.getFacing();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //The plant was either immature or something cancelled the event, therefor we need to treat it differently
 | 
			
		||||
        this.blockBreakEvent = blockBreakEvent;
 | 
			
		||||
        this.wasImmaturePlant = wasImmaturePlant;
 | 
			
		||||
@@ -53,22 +64,33 @@ public class DelayedCropReplant extends BukkitRunnable {
 | 
			
		||||
            //The space is not currently occupied by a block so we can fill it
 | 
			
		||||
            cropBlock.setType(cropMaterial);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            //Get new state (necessary?)
 | 
			
		||||
            BlockState newState = cropBlock.getState();
 | 
			
		||||
//            newState.update();
 | 
			
		||||
            BlockData newData = newState.getBlockData();
 | 
			
		||||
 | 
			
		||||
            Ageable ageable = (Ageable) newState.getBlockData();
 | 
			
		||||
            int age = 0;
 | 
			
		||||
 | 
			
		||||
            //Crop age should always be 0 if the plant was immature
 | 
			
		||||
            if(wasImmaturePlant) {
 | 
			
		||||
                ageable.setAge(0);
 | 
			
		||||
            } else {
 | 
			
		||||
            if(!wasImmaturePlant) {
 | 
			
		||||
                age = desiredCropAge;
 | 
			
		||||
                //Otherwise make the plant the desired age
 | 
			
		||||
                ageable.setAge(desiredCropAge);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if(newData instanceof Directional) {
 | 
			
		||||
                //Cocoa Version
 | 
			
		||||
                Directional directional = (Directional) newState.getBlockData();
 | 
			
		||||
                directional.setFacing(cropFace);
 | 
			
		||||
 | 
			
		||||
                newState.setBlockData(directional);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            //Age the crop
 | 
			
		||||
            Ageable ageable = (Ageable) newState.getBlockData();
 | 
			
		||||
            ageable.setAge(age);
 | 
			
		||||
            newState.setBlockData(ageable);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            newState.update(true);
 | 
			
		||||
 | 
			
		||||
            //Play an effect
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user