File tree Expand file tree Collapse file tree 5 files changed +46
-8
lines changed
src/main/java/world/bentobox/skygrid Expand file tree Collapse file tree 5 files changed +46
-8
lines changed Original file line number Diff line number Diff line change 5454 <!-- Non-minecraft related dependencies -->
5555 <powermock .version>2.0.9</powermock .version>
5656 <!-- More visible way how to change dependency versions -->
57- <spigot .version>1.21.3 -R0.1-SNAPSHOT</spigot .version>
58- <bentobox .version>2.7.1-SNAPSHOT </bentobox .version>
57+ <spigot .version>1.21.10 -R0.1-SNAPSHOT</spigot .version>
58+ <bentobox .version>3.3.1 </bentobox .version>
5959 <!-- Revision variable removes warning about dynamic version -->
6060 <revision >${build.version}-SNAPSHOT</revision >
6161 <!-- Do not change unless you want different name for local builds. -->
6262 <build .number>-LOCAL</build .number>
6363 <!-- This allows to change between versions. -->
64- <build .version>2.2.2 </build .version>
64+ <build .version>2.2.3 </build .version>
6565 <!-- SonarCloud -->
6666 <sonar .projectKey>BentoBoxWorld_SkyGrid</sonar .projectKey>
6767 <sonar .organization>bentobox-world</sonar .organization>
Original file line number Diff line number Diff line change @@ -111,9 +111,6 @@ public class Settings implements WorldSettings {
111111 @ ConfigEntry (path = "world.end.blocks" )
112112 private Map <Material , Integer > endBlocks = new EnumMap <>(Material .class );
113113
114- @ ConfigComment ("This option indicates if obsidian platform in the end should be generated" )
115- @ ConfigComment ("when player enters the end world." )
116- @ ConfigEntry (path = "world.end.create-obsidian-platform" , since = "1.16" )
117114 private boolean makeEndPortals = true ;
118115
119116 /* SkyGrid */
Original file line number Diff line number Diff line change 1616import world .bentobox .skygrid .generators .SkyGridBiomeProvider ;
1717import world .bentobox .skygrid .generators .SkyGridGen ;
1818import world .bentobox .skygrid .generators .WorldStyles ;
19+ import world .bentobox .skygrid .listeners .EndPortalListener ;
1920
2021/**
2122 * Main SkyGrid class - provides skygrid
@@ -65,6 +66,8 @@ private void loadSettings() {
6566 public void onEnable () {
6667 // Set default protection flags for world to allow everything
6768 Flags .values ().stream ().filter (f -> f .getType ().equals (Type .PROTECTION )).forEach (f -> f .setDefaultSetting (getOverWorld (), true ));
69+ // Listen for end portals
70+ this .registerListener (new EndPortalListener (this ));
6871 }
6972
7073 @ Override
Original file line number Diff line number Diff line change 11package world .bentobox .skygrid .generators ;
22
3- import java .util .HashMap ;
43import java .util .Map ;
54import java .util .Map .Entry ;
65import java .util .NavigableMap ;
76import java .util .Random ;
87import java .util .TreeMap ;
98import java .util .UUID ;
9+ import java .util .concurrent .ConcurrentHashMap ;
1010
1111import org .bukkit .Bukkit ;
1212import org .bukkit .Location ;
@@ -40,7 +40,7 @@ public class SkyGridPop extends BlockPopulator {
4040 private int worldTotal ;
4141 private int netherTotal ;
4242 private int endTotal ;
43- private Map <UUID , Random > rand = new HashMap <>();
43+ private Map <UUID , Random > rand = new ConcurrentHashMap <>();
4444 private Random random = new Random ();
4545
4646 private static final Material [] SAPLING_TYPE = {
Original file line number Diff line number Diff line change 1+ package world .bentobox .skygrid .listeners ;
2+
3+ import org .bukkit .Bukkit ;
4+ import org .bukkit .Location ;
5+ import org .bukkit .event .EventHandler ;
6+ import org .bukkit .event .EventPriority ;
7+ import org .bukkit .event .Listener ;
8+ import org .bukkit .event .player .PlayerPortalEvent ;
9+ import org .bukkit .event .player .PlayerTeleportEvent .TeleportCause ;
10+
11+ import world .bentobox .bentobox .util .teleport .SafeSpotTeleport ;
12+ import world .bentobox .skygrid .SkyGrid ;
13+
14+ /**
15+ * Listens to player's teleporting to the End and puts an obsidian platform under them.
16+ */
17+ public class EndPortalListener implements Listener {
18+ private SkyGrid addon ;
19+
20+ public EndPortalListener (SkyGrid addon ) {
21+ super ();
22+ this .addon = addon ;
23+ }
24+
25+ @ EventHandler (priority = EventPriority .HIGH , ignoreCancelled = true )
26+ public void onPlayerTeleport (PlayerPortalEvent e ) {
27+ if (addon .getEndWorld () == null ||
28+ e .getCause () != TeleportCause .END_PORTAL || !addon .inWorld (e .getFrom ())) {
29+ return ;
30+ }
31+ Location to = e .getPlayer ().getLocation ().toVector ().toLocation (addon .getEndWorld ());
32+ to .setY (addon .getSettings ().getIslandHeight ());
33+ Bukkit .getScheduler ().runTask (addon .getPlugin (), () ->
34+ new SafeSpotTeleport .Builder (addon .getPlugin ()).portal ().entity (e .getPlayer ()).location (to ).build ());
35+ e .setCancelled (true );
36+
37+ }
38+ }
You can’t perform that action at this time.
0 commit comments