MobHealth Code

Select a file to view contents.

.classpath
.gitignore
.project
.settings/org.eclipse.core.resources.prefs
README.md
bin/me/sablednah/MobHealth/API/MobHealthAPI.class
bin/me/sablednah/MobHealth/HeroesEventListener.class
bin/me/sablednah/MobHealth/MessageScheduler.class
bin/me/sablednah/MobHealth/Metrics$1.class
bin/me/sablednah/MobHealth/Metrics$Graph.class
bin/me/sablednah/MobHealth/Metrics$Plotter.class
bin/me/sablednah/MobHealth/Metrics.class
bin/me/sablednah/MobHealth/MobHealth$1.class
bin/me/sablednah/MobHealth/MobHealth.class
bin/me/sablednah/MobHealth/MobHealthCommandExecutor.class
bin/me/sablednah/MobHealth/NewWidgitActions.class
bin/me/sablednah/MobHealth/SaveToggle.class
bin/me/sablednah/MobHealth/ServerDamageEntityListener$ScheduledshowBar.class
bin/me/sablednah/MobHealth/ServerDamageEntityListener.class
bin/me/sablednah/MobHealth/SetHealth.class
bin/me/sablednah/MobHealth/SkillMessageScheduler.class
bin/me/sablednah/MobHealth/SpoutNotifications.class
bin/me/sablednah/MobHealth/Updater$UpdateResult.class
bin/me/sablednah/MobHealth/Updater$UpdateRunnable.class
bin/me/sablednah/MobHealth/Updater$UpdateType.class
bin/me/sablednah/MobHealth/Updater.class
licence.txt
pom.xml
src/main/java/me/sablednah/MobHealth/API/ActionBar.java
src/main/java/me/sablednah/MobHealth/API/ActionBar_1_8_1.java
src/main/java/me/sablednah/MobHealth/API/ActionBar_1_8_3.java
src/main/java/me/sablednah/MobHealth/API/ActionBar_1_8_4.java
src/main/java/me/sablednah/MobHealth/API/MobHealthAPI.java
src/main/java/me/sablednah/MobHealth/API/PlayerHealthEvent.java
src/main/java/me/sablednah/MobHealth/HeroesEventListener.java
src/main/java/me/sablednah/MobHealth/MessageScheduler.java
src/main/java/me/sablednah/MobHealth/Metrics.java
src/main/java/me/sablednah/MobHealth/MobHealth.java
src/main/java/me/sablednah/MobHealth/MobHealthCommandExecutor.java
src/main/java/me/sablednah/MobHealth/NewWidgitActions.java
src/main/java/me/sablednah/MobHealth/SaveToggle.java
src/main/java/me/sablednah/MobHealth/ServerDamageEntityListener.java
src/main/java/me/sablednah/MobHealth/SetHealth.java
src/main/java/me/sablednah/MobHealth/SkillMessageScheduler.java
src/main/java/me/sablednah/MobHealth/SpoutNotifications.java
src/main/java/me/sablednah/MobHealth/Updater.java
src/main/resources/config.yml
src/main/resources/lang.yml
src/main/resources/players.yml
src/main/resources/plugin.yml


/*
 * This file is part of MobHealth.
 * Copyright (C) 2012-2013 Darren Douglas - [email protected]
 *
 * MobHealth is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * MobHealth is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with MobHealth.  If not, see <http://www.gnu.org/licenses/>.
 */

package main.java.me.sablednah.MobHealth;

import main.java.me.sablednah.MobHealth.API.MobHealthAPI;
import main.java.me.sablednah.MobHealth.API.PlayerHealthEvent;

import org.bukkit.entity.Player;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.ScoreboardManager;

public class SetHealth {

	public MobHealth				plugin;
	public MobHealthAPI				API			= null;
	public static ScoreboardManager	manager		= null;
	public static Scoreboard		globalboard	= null;
	Objective						objective	= null;

	public SetHealth(MobHealth p) {
		this.plugin = p;
		this.API = new MobHealthAPI(plugin);
		manager = plugin.getServer().getScoreboardManager();
		globalboard = manager.getNewScoreboard();
		objective = globalboard.registerNewObjective("mobhealth", "dummy");

		// objective = globalboard.getObjective("mobhealth");

		objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
		if (MobHealth.usePercentForPlayer) {
			objective.setDisplayName(MobHealth.playerLabelPercent);
		} else {
			objective.setDisplayName(MobHealth.playerLabel);
		}
		for (Player online : plugin.getServer().getOnlinePlayers()) {
			setPlayer(online);
		}
	}

	@SuppressWarnings("deprecation")
	public void setPlayer(Player p) {
		if (p.isOnline()) {
			int maxHealth = API.getMobMaxHealth(p);
			int health = API.getMobHealth(p);
			Score score = null;
			try {
				String name = p.getName();
				if (name.length() > 16) {
					name = name.substring(0, 16);
				}
				score = objective.getScore(name);
			} catch (NoSuchMethodError e) {
				score = objective.getScore(p);
			}
			PlayerHealthEvent e = new PlayerHealthEvent(health, maxHealth, globalboard, objective, score);
			plugin.getServer().getPluginManager().callEvent(e);
			if (e.isCancelled()) {
				return;
			}
			score = e.getScore();
			objective = e.getObjective();

			p.setScoreboard(globalboard);

			int value = health;
			if (MobHealth.usePercentForPlayer) {
				value = (int) ((health / (float) maxHealth) * 100);
			}
			score.setScore(value);
		}
	}

	public void removePlayer(Player p) {
		// healthInfo.remove(p);
	}
}

Leave a Reply