mirror of
https://github.com/plexusorg/Module-TFMExtras.git
synced 2025-07-03 16:56:43 +00:00
Update this to Plex 1.4
This commit is contained in:
@ -9,13 +9,16 @@ import com.infernalsuite.aswm.api.world.properties.SlimeProperties;
|
||||
import com.infernalsuite.aswm.api.world.properties.SlimePropertyMap;
|
||||
import dev.plex.extras.TFMExtras;
|
||||
import dev.plex.util.PlexLog;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameRule;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
@ -29,8 +32,11 @@ public class SlimeWorldHook implements IHook<SlimePlugin>
|
||||
private static final String WORLD_NOT_FOUND = "<red>This world could not be found!";
|
||||
private static final String STORAGE_FAILURE = "<red>This world cannot be stored!";
|
||||
|
||||
private final Set<String> LOADED_WORLDS = Sets.newHashSet();
|
||||
private final Set<String> loadedWorlds = Sets.newHashSet();
|
||||
|
||||
// private final List<>
|
||||
|
||||
@Getter
|
||||
private SlimeLoader loader;
|
||||
|
||||
|
||||
@ -46,7 +52,6 @@ public class SlimeWorldHook implements IHook<SlimePlugin>
|
||||
PlexLog.log("<green>Enabling SWM Hook");
|
||||
|
||||
this.loader = plugin().getLoader("mysql");
|
||||
this.loadAllWorlds();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -54,7 +59,7 @@ public class SlimeWorldHook implements IHook<SlimePlugin>
|
||||
{
|
||||
PlexLog.log("<green>Disabling SWM Hook");
|
||||
AtomicInteger i = new AtomicInteger();
|
||||
LOADED_WORLDS.forEach(s ->
|
||||
loadedWorlds.forEach(s ->
|
||||
{
|
||||
final World world = Bukkit.getWorld(s);
|
||||
if (world != null)
|
||||
@ -104,7 +109,7 @@ public class SlimeWorldHook implements IHook<SlimePlugin>
|
||||
world.setSpawnLocation(0, 130, 0);
|
||||
world.setAutoSave(true);
|
||||
|
||||
LOADED_WORLDS.add(s);
|
||||
loadedWorlds.add(s);
|
||||
|
||||
double configuratedSize = TFMExtras.getModule().getConfig().getDouble("player-worlds.size");
|
||||
world.getWorldBorder().setCenter(world.getSpawnLocation());
|
||||
@ -120,6 +125,27 @@ public class SlimeWorldHook implements IHook<SlimePlugin>
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isWorldLoaded(String world)
|
||||
{
|
||||
return loadedWorlds.stream().anyMatch(s -> s.equals(world));
|
||||
}
|
||||
|
||||
public void deleteWorld(String world)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Bukkit.getWorld(world) != null)
|
||||
{
|
||||
Bukkit.unloadWorld(world, false);
|
||||
}
|
||||
this.loader.deleteWorld(world);
|
||||
}
|
||||
catch (UnknownWorldException | IOException e)
|
||||
{
|
||||
PlexLog.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public Pair<World, Boolean> createPlayerWorld(UUID uuid)
|
||||
{
|
||||
final SlimePropertyMap slimePropertyMap = new SlimePropertyMap();
|
||||
@ -173,7 +199,7 @@ public class SlimeWorldHook implements IHook<SlimePlugin>
|
||||
world.getBlockAt(0, 128, 0).setType(Material.STONE);
|
||||
}
|
||||
|
||||
LOADED_WORLDS.add(uuid.toString());
|
||||
loadedWorlds.add(uuid.toString());
|
||||
|
||||
double configuratedSize = TFMExtras.getModule().getConfig().getDouble("player-worlds.size");
|
||||
world.getWorldBorder().setCenter(world.getSpawnLocation());
|
||||
@ -181,9 +207,16 @@ public class SlimeWorldHook implements IHook<SlimePlugin>
|
||||
world.getWorldBorder().setDamageAmount(0);
|
||||
world.getWorldBorder().setDamageBuffer(0);
|
||||
|
||||
final WorldLoadEvent event = new WorldLoadEvent(world);
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
return Pair.of(world, newWorld);
|
||||
}
|
||||
|
||||
public Set<String> loadedWorlds()
|
||||
{
|
||||
return this.loadedWorlds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SlimePlugin plugin()
|
||||
|
27
src/main/java/dev/plex/extras/hook/slime/PlayerWorld.java
Normal file
27
src/main/java/dev/plex/extras/hook/slime/PlayerWorld.java
Normal file
@ -0,0 +1,27 @@
|
||||
package dev.plex.extras.hook.slime;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import dev.plex.storage.annotation.PrimaryKey;
|
||||
import dev.plex.storage.annotation.SQLTable;
|
||||
import lombok.Data;
|
||||
import org.bukkit.GameRule;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author Taah
|
||||
* @since 9:26 PM [24-08-2023]
|
||||
*/
|
||||
@Data
|
||||
@SQLTable("player_worlds")
|
||||
public class PlayerWorld
|
||||
{
|
||||
@PrimaryKey
|
||||
private final UUID owner;
|
||||
private final List<UUID> members = Lists.newArrayList();
|
||||
private boolean anyoneCanEdit;
|
||||
private boolean anyoneCanVisit;
|
||||
}
|
Reference in New Issue
Block a user