plugin: remove hologramapi support. too tacky.
This commit is contained in:
parent
c8ea34ff25
commit
d4ac1a0044
@ -45,7 +45,6 @@ public class Plugin extends JavaPlugin {
|
|||||||
Logger log = Logger.getLogger("Regions");
|
Logger log = Logger.getLogger("Regions");
|
||||||
RegionManager m_regions;
|
RegionManager m_regions;
|
||||||
PlayerWatcher m_playerWatcher;
|
PlayerWatcher m_playerWatcher;
|
||||||
RegionPostManager m_regionPosts;
|
|
||||||
|
|
||||||
public RegionManager regionManager() {
|
public RegionManager regionManager() {
|
||||||
return m_regions;
|
return m_regions;
|
||||||
@ -65,14 +64,6 @@ public class Plugin extends JavaPlugin {
|
|||||||
getCommand("regions").setExecutor(new RegionsCommand(this));
|
getCommand("regions").setExecutor(new RegionsCommand(this));
|
||||||
getCommand("regionop").setExecutor(new RegionOpCommand(this));
|
getCommand("regionop").setExecutor(new RegionOpCommand(this));
|
||||||
|
|
||||||
boolean useHolograms = getServer().getPluginManager().isPluginEnabled("HolographicDisplays");
|
|
||||||
if (!useHolograms) {
|
|
||||||
log.info("HolographicDisplays not enabled. Region posts will not have holograms.");
|
|
||||||
}
|
|
||||||
m_regionPosts = new RegionPostManager(m_regions, this, useHolograms);
|
|
||||||
// TODO: Make holograms configurable. Disabled by default for now.
|
|
||||||
//getServer().getPluginManager().registerEvents(m_regionPosts, this);
|
|
||||||
|
|
||||||
loadRegions();
|
loadRegions();
|
||||||
m_playerWatcher.recalculatePlayerRegions(true);
|
m_playerWatcher.recalculatePlayerRegions(true);
|
||||||
org.bukkit.plugin.Plugin mapPlugin = getServer().getPluginManager().getPlugin("dynmap");
|
org.bukkit.plugin.Plugin mapPlugin = getServer().getPluginManager().getPlugin("dynmap");
|
||||||
@ -120,7 +111,6 @@ public class Plugin extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
m_regionPosts.release();
|
|
||||||
saveRegions();
|
saveRegions();
|
||||||
log.info("Plugin disabled");
|
log.info("Plugin disabled");
|
||||||
}
|
}
|
||||||
|
@ -1,141 +0,0 @@
|
|||||||
package us.camin.regions;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This file is part of Regions
|
|
||||||
*
|
|
||||||
* Regions 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.
|
|
||||||
*
|
|
||||||
* Regions 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 Regions. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
import com.gmail.filoghost.holographicdisplays.api.HologramsAPI;
|
|
||||||
|
|
||||||
import us.camin.regions.events.PlayerNearRegionPostEvent;
|
|
||||||
import us.camin.regions.events.RegionCreateEvent;
|
|
||||||
import us.camin.regions.events.RegionRemoveEvent;
|
|
||||||
import us.camin.regions.ui.RegionPostBuilder;
|
|
||||||
|
|
||||||
import com.gmail.filoghost.holographicdisplays.api.Hologram;
|
|
||||||
|
|
||||||
public class RegionPostManager implements Listener {
|
|
||||||
Logger log = Logger.getLogger("Regions.RegionPostManager");
|
|
||||||
|
|
||||||
Plugin m_plugin;
|
|
||||||
RegionManager m_regions;
|
|
||||||
boolean m_useHolograms;
|
|
||||||
HashMap<Region, Hologram> m_regionHolograms;
|
|
||||||
//HashMap<Region, ArmorStand> m_armorStands;
|
|
||||||
|
|
||||||
public RegionPostManager(RegionManager regions, Plugin plugin, boolean useHolograms) {
|
|
||||||
//m_armorStands = new HashMap<Region, ArmorStand>();
|
|
||||||
m_regions = regions;
|
|
||||||
m_plugin = plugin;
|
|
||||||
m_useHolograms = useHolograms;
|
|
||||||
m_regionHolograms = new HashMap<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onRegionCreate(RegionCreateEvent event) {
|
|
||||||
Location loc = event.region.location();
|
|
||||||
if (loc.getWorld().isChunkLoaded((int)loc.getX(), (int)loc.getY())) {
|
|
||||||
createHologram(event.region);
|
|
||||||
queueRebuild(event.region);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onPlayerNearRegionPost(PlayerNearRegionPostEvent event) {
|
|
||||||
createHologram(event.region);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void queueRebuild(Region region) {
|
|
||||||
if (region != null) {
|
|
||||||
log.info("Rebuilding region post for " + region.name());
|
|
||||||
m_plugin.getServer().getScheduler().runTask(m_plugin, () -> {
|
|
||||||
RegionPostBuilder builder = new RegionPostBuilder(region, m_plugin);
|
|
||||||
builder.build();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onRegionDestroy(RegionRemoveEvent event) {
|
|
||||||
destroyHologram(event.region);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void release() {
|
|
||||||
for(Region r : new ArrayList<>(m_regionHolograms.keySet())) {
|
|
||||||
destroyHologram(r);
|
|
||||||
}
|
|
||||||
/*for(Region r : new ArrayList<>(m_armorStands.keySet())) {
|
|
||||||
destroyHologram(r);
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createHologram(Region r) {
|
|
||||||
if (!m_useHolograms) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Hologram hologram = m_regionHolograms.get(r);
|
|
||||||
if (hologram == null) {
|
|
||||||
hologram = HologramsAPI.createHologram(m_plugin, r.teleportLocation().clone().add(0.5, 0, 0.5));
|
|
||||||
hologram.appendTextLine(r.coloredName());
|
|
||||||
m_regionHolograms.put(r, hologram);
|
|
||||||
}
|
|
||||||
/*boolean needsRegen = false;
|
|
||||||
if (m_armorStands.containsKey(r)) {
|
|
||||||
// If we have an armor stand, but it isn't valid, regen
|
|
||||||
needsRegen = !m_armorStands.get(r).isValid();
|
|
||||||
} else {
|
|
||||||
// If we don't have an armor stand at all, regen
|
|
||||||
needsRegen = true;
|
|
||||||
}
|
|
||||||
if (needsRegen) {
|
|
||||||
log.info("Creating hologram for " + r.name());
|
|
||||||
Location markerLocation = r.teleportLocation().clone().add(0.5, 0, 0.5);
|
|
||||||
ArmorStand stand = (ArmorStand) r.location().getWorld().spawnEntity(markerLocation, EntityType.ARMOR_STAND);
|
|
||||||
stand.setVisible(false);
|
|
||||||
stand.setCustomName(r.coloredName());
|
|
||||||
stand.setMarker(true);
|
|
||||||
stand.setSmall(true);
|
|
||||||
stand.setRemoveWhenFarAway(true);
|
|
||||||
stand.setCustomNameVisible(true);
|
|
||||||
stand.setInvulnerable(true);
|
|
||||||
stand.setSilent(true);
|
|
||||||
m_armorStands.put(r, stand);
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
|
|
||||||
private void destroyHologram(Region r) {
|
|
||||||
if (!m_useHolograms) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Hologram hologram = m_regionHolograms.get(r);
|
|
||||||
if (hologram != null) {
|
|
||||||
hologram.delete();
|
|
||||||
}
|
|
||||||
/*log.info("Destroying hologram for " + r.name());
|
|
||||||
ArmorStand stand = m_armorStands.get(r);
|
|
||||||
if (stand != null && stand.isValid()) {
|
|
||||||
stand.remove();
|
|
||||||
}
|
|
||||||
m_armorStands.remove(r);*/
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user