mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Improve holiday manager with 1.7 changes
This commit is contained in:
		@@ -24,6 +24,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
 | 
				
			|||||||
import org.bukkit.event.player.PlayerPickupItemEvent;
 | 
					import org.bukkit.event.player.PlayerPickupItemEvent;
 | 
				
			||||||
import org.bukkit.event.player.PlayerQuitEvent;
 | 
					import org.bukkit.event.player.PlayerQuitEvent;
 | 
				
			||||||
import org.bukkit.event.player.PlayerRespawnEvent;
 | 
					import org.bukkit.event.player.PlayerRespawnEvent;
 | 
				
			||||||
 | 
					import org.bukkit.event.player.PlayerStatisticIncrementEvent;
 | 
				
			||||||
import org.bukkit.event.player.PlayerTeleportEvent;
 | 
					import org.bukkit.event.player.PlayerTeleportEvent;
 | 
				
			||||||
import org.bukkit.inventory.ItemStack;
 | 
					import org.bukkit.inventory.ItemStack;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -694,4 +695,13 @@ public class PlayerListener implements Listener {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
				
			||||||
 | 
					    public void onPlayerStatisticIncrementEvent(PlayerStatisticIncrementEvent event) {
 | 
				
			||||||
 | 
					        if (!mcMMO.getHolidayManager().isAprilFirst()) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mcMMO.getHolidayManager().handleStatisticEvent(event);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@ package com.gmail.nossr50.runnables.skills;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import org.bukkit.ChatColor;
 | 
					import org.bukkit.ChatColor;
 | 
				
			||||||
import org.bukkit.Sound;
 | 
					import org.bukkit.Sound;
 | 
				
			||||||
 | 
					import org.bukkit.Statistic;
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
import org.bukkit.scheduler.BukkitRunnable;
 | 
					import org.bukkit.scheduler.BukkitRunnable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -19,6 +20,7 @@ public class AprilTask extends BukkitRunnable {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
 | 
					        for (Player player : mcMMO.p.getServer().getOnlinePlayers()) {
 | 
				
			||||||
 | 
					            int random = Misc.getRandom().nextInt(40) + 11;
 | 
				
			||||||
            int betterRandom = Misc.getRandom().nextInt(2000);
 | 
					            int betterRandom = Misc.getRandom().nextInt(2000);
 | 
				
			||||||
            if (betterRandom == 0) {
 | 
					            if (betterRandom == 0) {
 | 
				
			||||||
                player.playSound(player.getLocation(), Sound.LEVEL_UP, Misc.LEVELUP_VOLUME, Misc.LEVELUP_PITCH);
 | 
					                player.playSound(player.getLocation(), Sound.LEVEL_UP, Misc.LEVELUP_VOLUME, Misc.LEVELUP_PITCH);
 | 
				
			||||||
@@ -26,10 +28,9 @@ public class AprilTask extends BukkitRunnable {
 | 
				
			|||||||
                fireworksShow(player);
 | 
					                fireworksShow(player);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (HolidayManager.FakeSkillType fakeSkillType : HolidayManager.FakeSkillType.values()) {
 | 
					            for (Statistic statistic : mcMMO.getHolidayManager().movementStatistics) {
 | 
				
			||||||
                int random = Misc.getRandom().nextInt(250);
 | 
					                if (player.getStatistic(statistic) > 0 && player.getStatistic(statistic) % random == 0) {
 | 
				
			||||||
                if (random == 0) {
 | 
					                    mcMMO.getHolidayManager().levelUpApril(player, HolidayManager.FakeSkillType.getByStatistic(statistic));
 | 
				
			||||||
                    mcMMO.getHolidayManager().levelUpApril(player, fakeSkillType);
 | 
					 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,8 +10,10 @@ import java.util.ArrayList;
 | 
				
			|||||||
import java.util.Calendar;
 | 
					import java.util.Calendar;
 | 
				
			||||||
import java.util.Collections;
 | 
					import java.util.Collections;
 | 
				
			||||||
import java.util.Date;
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					import java.util.EnumSet;
 | 
				
			||||||
import java.util.GregorianCalendar;
 | 
					import java.util.GregorianCalendar;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.regex.Pattern;
 | 
					import java.util.regex.Pattern;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.bukkit.ChatColor;
 | 
					import org.bukkit.ChatColor;
 | 
				
			||||||
@@ -20,11 +22,13 @@ import org.bukkit.DyeColor;
 | 
				
			|||||||
import org.bukkit.FireworkEffect;
 | 
					import org.bukkit.FireworkEffect;
 | 
				
			||||||
import org.bukkit.FireworkEffect.Type;
 | 
					import org.bukkit.FireworkEffect.Type;
 | 
				
			||||||
import org.bukkit.Sound;
 | 
					import org.bukkit.Sound;
 | 
				
			||||||
 | 
					import org.bukkit.Statistic;
 | 
				
			||||||
import org.bukkit.command.CommandSender;
 | 
					import org.bukkit.command.CommandSender;
 | 
				
			||||||
import org.bukkit.command.PluginCommand;
 | 
					import org.bukkit.command.PluginCommand;
 | 
				
			||||||
import org.bukkit.entity.EntityType;
 | 
					import org.bukkit.entity.EntityType;
 | 
				
			||||||
import org.bukkit.entity.Firework;
 | 
					import org.bukkit.entity.Firework;
 | 
				
			||||||
import org.bukkit.entity.Player;
 | 
					import org.bukkit.entity.Player;
 | 
				
			||||||
 | 
					import org.bukkit.event.player.PlayerStatisticIncrementEvent;
 | 
				
			||||||
import org.bukkit.inventory.meta.FireworkMeta;
 | 
					import org.bukkit.inventory.meta.FireworkMeta;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.gmail.nossr50.mcMMO;
 | 
					import com.gmail.nossr50.mcMMO;
 | 
				
			||||||
@@ -67,8 +71,45 @@ public final class HolidayManager {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            return null;
 | 
					            return null;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public static FakeSkillType getByStatistic(Statistic statistic) {
 | 
				
			||||||
 | 
					            switch (statistic) {
 | 
				
			||||||
 | 
					                case DAMAGE_TAKEN:
 | 
				
			||||||
 | 
					                    return FakeSkillType.MACHO;
 | 
				
			||||||
 | 
					                case JUMP:
 | 
				
			||||||
 | 
					                    return FakeSkillType.JUMPING;
 | 
				
			||||||
 | 
					                case DROP:
 | 
				
			||||||
 | 
					                    return FakeSkillType.THROWING;
 | 
				
			||||||
 | 
					                case MINE_BLOCK:
 | 
				
			||||||
 | 
					                case BREAK_ITEM:
 | 
				
			||||||
 | 
					                    return FakeSkillType.WRECKING;
 | 
				
			||||||
 | 
					                case CRAFT_ITEM:
 | 
				
			||||||
 | 
					                    return FakeSkillType.CRAFTING;
 | 
				
			||||||
 | 
					                case WALK_ONE_CM:
 | 
				
			||||||
 | 
					                    return FakeSkillType.WALKING;
 | 
				
			||||||
 | 
					                case SWIM_ONE_CM:
 | 
				
			||||||
 | 
					                    return FakeSkillType.SWIMMING;
 | 
				
			||||||
 | 
					                case FALL_ONE_CM:
 | 
				
			||||||
 | 
					                    return FakeSkillType.FALLING;
 | 
				
			||||||
 | 
					                case CLIMB_ONE_CM:
 | 
				
			||||||
 | 
					                    return FakeSkillType.CLIMBING;
 | 
				
			||||||
 | 
					                case FLY_ONE_CM:
 | 
				
			||||||
 | 
					                    return FakeSkillType.FLYING;
 | 
				
			||||||
 | 
					                case DIVE_ONE_CM:
 | 
				
			||||||
 | 
					                    return FakeSkillType.DIVING;
 | 
				
			||||||
 | 
					                case PIG_ONE_CM:
 | 
				
			||||||
 | 
					                    return FakeSkillType.PIGGY;
 | 
				
			||||||
 | 
					                default:
 | 
				
			||||||
 | 
					                    return FakeSkillType.UNKNOWN;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public final Set<Statistic> movementStatistics = EnumSet.of(
 | 
				
			||||||
 | 
					            Statistic.WALK_ONE_CM, Statistic.SWIM_ONE_CM, Statistic.FALL_ONE_CM,
 | 
				
			||||||
 | 
					            Statistic.CLIMB_ONE_CM, Statistic.FLY_ONE_CM, Statistic.DIVE_ONE_CM,
 | 
				
			||||||
 | 
					            Statistic.PIG_ONE_CM);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static {
 | 
					    static {
 | 
				
			||||||
        List<Color> colors = new ArrayList<Color>();
 | 
					        List<Color> colors = new ArrayList<Color>();
 | 
				
			||||||
        List<ChatColor> chatColors = new ArrayList<ChatColor>();
 | 
					        List<ChatColor> chatColors = new ArrayList<ChatColor>();
 | 
				
			||||||
@@ -301,6 +342,37 @@ public final class HolidayManager {
 | 
				
			|||||||
        return mcMMO.getHolidayManager().getDateRange(day.getTime(), start.getTime(), end.getTime());
 | 
					        return mcMMO.getHolidayManager().getDateRange(day.getTime(), start.getTime(), end.getTime());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void handleStatisticEvent(PlayerStatisticIncrementEvent event) {Player player = event.getPlayer();
 | 
				
			||||||
 | 
					        Statistic statistic = event.getStatistic();
 | 
				
			||||||
 | 
					        int newValue = event.getNewValue();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        int modifier;
 | 
				
			||||||
 | 
					        switch (statistic) {
 | 
				
			||||||
 | 
					            case DAMAGE_TAKEN:
 | 
				
			||||||
 | 
					                modifier = 500;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case JUMP:
 | 
				
			||||||
 | 
					                modifier = 500;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case DROP:
 | 
				
			||||||
 | 
					                modifier = 200;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case MINE_BLOCK:
 | 
				
			||||||
 | 
					            case BREAK_ITEM:
 | 
				
			||||||
 | 
					                modifier = 500;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case CRAFT_ITEM:
 | 
				
			||||||
 | 
					                modifier = 100;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            default:
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (newValue % modifier == 0) {
 | 
				
			||||||
 | 
					            mcMMO.p.getHolidayManager().levelUpApril(player, FakeSkillType.getByStatistic(statistic));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void levelUpApril(Player player, FakeSkillType fakeSkillType) {
 | 
					    public void levelUpApril(Player player, FakeSkillType fakeSkillType) {
 | 
				
			||||||
        int levelTotal = Misc.getRandom().nextInt(UserManager.getPlayer(player).getSkillLevel(SkillType.MINING)) + 1;
 | 
					        int levelTotal = Misc.getRandom().nextInt(UserManager.getPlayer(player).getSkillLevel(SkillType.MINING)) + 1;
 | 
				
			||||||
        player.playSound(player.getLocation(), Sound.LEVEL_UP, Misc.LEVELUP_VOLUME, Misc.LEVELUP_PITCH);
 | 
					        player.playSound(player.getLocation(), Sound.LEVEL_UP, Misc.LEVELUP_VOLUME, Misc.LEVELUP_PITCH);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user