Skip to content

Commit 5a67e1e

Browse files
authored
Merge pull request #56 from whimc/update-holograms
Update holograms dependency
2 parents c2600ed + 3a857b6 commit 5a67e1e

File tree

4 files changed

+41
-46
lines changed

4 files changed

+41
-46
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ $ mvn clean package
1111
It should show up in the target directory. Make sure to update your version number.
1212

1313
## Dependencies
14-
* [HolographicDisplays](https://github.com/filoghost/HolographicDisplays)
14+
* [DecentHolograms](https://www.spigotmc.org/resources/decentholograms-1-8-1-21-5-papi-support-no-dependencies.96927/)
1515
* [ProtocolLib](https://www.spigotmc.org/resources/protocollib.1997/)
1616

1717
## Commands

pom.xml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>edu.whimc</groupId>
66
<artifactId>WHIMC-Observations</artifactId>
7-
<version>2.6.3</version>
7+
<version>2.7.0</version>
88
<name>WHIMC Observations</name>
99
<description>Create holographic observations in worlds</description>
1010

@@ -18,7 +18,7 @@
1818
<id>spigot-repo</id>
1919
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
2020
</repository>
21-
<!-- Maven repo for Quests and HolographicDisplays -->
21+
<!-- Maven repo for Quests -->
2222
<repository>
2323
<id>codemc-repo</id>
2424
<url>https://repo.codemc.io/repository/maven-public/</url>
@@ -28,6 +28,11 @@
2828
<id>dmulloy2-repo</id>
2929
<url>https://repo.dmulloy2.net/repository/public/</url>
3030
</repository>
31+
<!-- Repo for DecentHolograms -->
32+
<repository>
33+
<id>jitpack</id>
34+
<url>https://jitpack.io/</url>
35+
</repository>
3136
</repositories>
3237

3338
<dependencies>
@@ -45,9 +50,10 @@
4550
</dependency>
4651
<!-- Legacy version of Holographic Displays -->
4752
<dependency>
48-
<groupId>com.gmail.filoghost.holographicdisplays</groupId>
49-
<artifactId>holographicdisplays-api</artifactId>
50-
<version>2.4.0</version>
53+
<groupId>com.github.decentsoftware-eu</groupId>
54+
<artifactId>decentholograms</artifactId>
55+
<version>2.8.17</version>
56+
<scope>provided</scope>
5157
</dependency>
5258
<!-- Add Quests to the build -->
5359
<dependency>

src/main/java/edu/whimc/observations/models/Observation.java

Lines changed: 28 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
11
package edu.whimc.observations.models;
22

3-
import com.gmail.filoghost.holographicdisplays.api.Hologram;
4-
import com.gmail.filoghost.holographicdisplays.api.HologramsAPI;
5-
import com.gmail.filoghost.holographicdisplays.api.handler.TouchHandler;
6-
import com.gmail.filoghost.holographicdisplays.api.line.TouchableLine;
73
import edu.whimc.observations.Observations;
84
import edu.whimc.observations.observetemplate.models.ObservationTemplate;
95
import edu.whimc.observations.utils.Utils;
10-
import org.bukkit.Bukkit;
11-
import org.bukkit.ChatColor;
12-
import org.bukkit.Location;
13-
import org.bukkit.Material;
14-
import org.bukkit.entity.Player;
15-
import org.bukkit.inventory.ItemStack;
16-
6+
import eu.decentsoftware.holograms.api.DHAPI;
7+
import eu.decentsoftware.holograms.api.holograms.Hologram;
8+
import eu.decentsoftware.holograms.event.HologramClickEvent;
179
import java.sql.Timestamp;
1810
import java.time.Instant;
1911
import java.time.temporal.ChronoUnit;
@@ -22,8 +14,15 @@
2214
import java.util.List;
2315
import java.util.Set;
2416
import java.util.stream.Collectors;
17+
import org.bukkit.Bukkit;
18+
import org.bukkit.ChatColor;
19+
import org.bukkit.Location;
20+
import org.bukkit.Material;
21+
import org.bukkit.entity.Player;
22+
import org.bukkit.event.EventHandler;
23+
import org.bukkit.event.Listener;
2524

26-
public class Observation {
25+
public class Observation implements Listener {
2726

2827
private static final List<Observation> observations = new ArrayList<>();
2928

@@ -59,6 +58,11 @@ protected Observation(Observations plugin, int id, Timestamp timestamp, String p
5958
this.hologramItem = this.template.getGuiItem();
6059
}
6160

61+
if (this.plugin.getConfig().getBoolean("enable-click-to-view")) {
62+
// Register this class as a listener to handle hologram clicks
63+
Bukkit.getPluginManager().registerEvents(this, plugin);
64+
}
65+
6266
if (!isNew) {
6367
this.id = id;
6468
createHologram();
@@ -156,28 +160,18 @@ public static List<String> getPlayersTabComplete(String hint) {
156160
}
157161

158162
private void createHologram() {
159-
Hologram holo = HologramsAPI.createHologram(this.plugin, this.holoLoc);
160-
161-
List<TouchableLine> lines = new ArrayList<>();
163+
Hologram holo = DHAPI.createHologram(Integer.toString(this.id), this.holoLoc);
162164

163-
lines.add(holo.appendItemLine(new ItemStack(this.hologramItem)));
164-
lines.add(holo.appendTextLine(Utils.color(this.observation)));
165-
lines.add(holo.appendTextLine(ChatColor.GRAY + this.playerName + " - " + Utils.getDate(this.timestamp)));
165+
DHAPI.addHologramLine(holo, this.hologramItem);
166+
DHAPI.addHologramLine(holo, Utils.color(this.observation));
167+
DHAPI.addHologramLine(holo, ChatColor.GRAY + this.playerName + " - " + Utils.getDate(this.timestamp));
166168

167169
if (this.expiration != null) {
168-
lines.add(holo.appendTextLine(ChatColor.GRAY + "Expires " + Utils.getDate(this.expiration)));
170+
DHAPI.addHologramLine(holo, ChatColor.GRAY + "Expires " + Utils.getDate(this.expiration));
169171
}
170172

171173
if (this.isTemporary) {
172-
lines.add(holo.appendTextLine(ChatColor.DARK_GRAY + "*temporary*"));
173-
}
174-
175-
if (this.plugin.getConfig().getBoolean("enable-click-to-view")) {
176-
ObservationClick clickListener = new ObservationClick(this.viewLoc);
177-
for (TouchableLine touchable : lines) {
178-
touchable.setTouchHandler(clickListener);
179-
}
180-
174+
DHAPI.addHologramLine(holo, ChatColor.DARK_GRAY + "*temporary*");
181175
}
182176

183177
this.hologram = holo;
@@ -265,18 +259,13 @@ public void deleteHologramOnly() {
265259
}
266260
}
267261

268-
private class ObservationClick implements TouchHandler {
269-
270-
private final Location loc;
271-
272-
public ObservationClick(Location loc) {
273-
this.loc = loc;
262+
@EventHandler
263+
public void onClick(HologramClickEvent event) {
264+
if (event.getHologram() != this.hologram) {
265+
return;
274266
}
275267

276-
@Override
277-
public void onTouch(Player player) {
278-
player.teleport(this.loc);
279-
}
268+
Bukkit.getScheduler().runTask(this.plugin, () -> event.getPlayer().teleport(this.viewLoc));
280269
}
281270

282-
}
271+
}

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: Jack Henhapl
55
api-version: 1.13
66
main: edu.whimc.observations.Observations
77
load: POSTWORLD
8-
depend: [HolographicDisplays, ProtocolLib]
8+
depend: [DecentHolograms, ProtocolLib]
99
softdepend: [Multiverse-Core]
1010
loadbefore: [Quests]
1111
commands:

0 commit comments

Comments
 (0)