Skip to content

Commit 53b5d4f

Browse files
authored
feat: Add creationdate and rating marker (#53)
1 parent 308549e commit 53b5d4f

3 files changed

Lines changed: 28 additions & 5 deletions

File tree

src/main/java/com/plotsquared/plot2dynmap/Plot2DynmapPlugin.java

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.plotsquared.plot2dynmap;
22

33
import com.plotsquared.core.PlotSquared;
4+
import com.plotsquared.core.configuration.Settings;
45
import com.plotsquared.core.plot.Plot;
56
import com.plotsquared.core.plot.flag.PlotFlag;
67
import com.plotsquared.core.plot.world.PlotAreaManager;
@@ -20,10 +21,14 @@
2021
import org.dynmap.markers.MarkerAPI;
2122
import org.dynmap.markers.MarkerSet;
2223

24+
import java.math.BigDecimal;
25+
import java.math.RoundingMode;
26+
import java.text.SimpleDateFormat;
2327
import java.util.HashMap;
2428
import java.util.Iterator;
2529
import java.util.Map;
2630
import java.util.Set;
31+
import java.util.TimeZone;
2732
import java.util.UUID;
2833

2934
/**
@@ -34,8 +39,8 @@ public class Plot2DynmapPlugin extends JavaPlugin implements Listener, Runnable
3439

3540
private static final String DEF_INFO_ELEMENT = "%key% <span style=\"font-weight:bold;\">%values%</span><br>";
3641
private static final String DEF_INFO_WINDOW =
37-
"<div class=\"infowindow\">" + "<span style=\"font-size:120%;\">%id%</span><br>" + "%alias%" + "%owner%"
38-
+ "%members%" + "%trusted%" + "%denied%" + "%flags%" + "</div>";
42+
"<div class=\"infowindow\">" + "<span style=\"font-size:120%;\">%id%</span><br>" + "%creationdate%" +
43+
"%alias%" + "%owner%" + "%members%" + "%trusted%" + "%rating%" + "%denied%" + "%flags%" + "</div>";
3944

4045
private static MarkerSet markerSet;
4146
private long updatePeriod;
@@ -65,6 +70,8 @@ private String formatInfoWindow(final PlotWrapper plot) {
6570
this.infoElement.replace("%values%", StringEscapeUtils.escapeHtml(plot.flags())).replace("%key%", "Flags")
6671
);
6772
v = v.replace("%owner%", plot.owner());
73+
v = v.replace("%creationdate%", this.infoElement.replace("%values%", plot.creationDate()).replace("%key%","Creation Date"));
74+
v = v.replace("%rating%", this.infoElement.replace("%values%", plot.rating()).replace("%key%", "Rating"));
6875
return v;
6976
}
7077

@@ -231,8 +238,24 @@ public void run() {
231238
String flags = flagBuilder.toString();
232239
flags = flags.isEmpty() ? "None" : flags;
233240

241+
final long creationDate = Long.parseLong(String.valueOf(plot.getTimestamp()));
242+
SimpleDateFormat sdf = new SimpleDateFormat(Settings.Timeformat.DATE_FORMAT);
243+
sdf.setTimeZone(TimeZone.getTimeZone(Settings.Timeformat.TIME_ZONE));
244+
String newDate = sdf.format(creationDate);
245+
246+
final String rating;
247+
if (Double.isNaN(plot.getAverageRating())) {
248+
rating = "NaN";
249+
} else if (!Settings.General.SCIENTIFIC) {
250+
BigDecimal roundRating = BigDecimal.valueOf(plot.getAverageRating()).setScale(2, RoundingMode.HALF_UP);
251+
rating = String.valueOf(roundRating);
252+
} else {
253+
rating = Double.toString(plot.getAverageRating());
254+
}
255+
234256
final PlotWrapper plotWrapper =
235-
new PlotWrapper(owner, helpers, trusted, denied, plot.getId(), alias, flags, plot.getArea());
257+
new PlotWrapper(owner, helpers, trusted, denied, plot.getId(), alias, flags, plot.getArea(),
258+
newDate, rating);
236259
handlePlot(world, plotWrapper, newMap);
237260
}
238261
}

src/main/java/com/plotsquared/plot2dynmap/PlotWrapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
record PlotWrapper(String owner, String helpers, String trusted, String denied,
77
PlotId plotId, String alias, String flags,
8-
PlotArea area) {
8+
PlotArea area, String creationDate, String rating) {
99

1010
/**
1111
* @deprecated Scheduled for removal in favor of record accessors.

src/main/resources/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ layer:
55
hidebydefault: false
66
layerprio: 0
77
minzoom: 0
8-
infowindow: "<div class=\"infowindow\"><span style=\"font-size:120%;\">%id%</span><br>%alias%%owner%%trusted%%members%%denied%%flags%</div>"
8+
infowindow: "<div class=\"infowindow\"><span style=\"font-size:120%;\">%id%</span><br>%creationdate%%alias%%owner%%rating%%trusted%%members%%denied%%flags%</div>"
99
infoelement: "%key%: <span style=\"font-weight:bold;\">%values%</span><br>"
1010
plotstyle:
1111
strokeColor: '#6666CC'

0 commit comments

Comments
 (0)