mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-06-11 20:13:55 +00:00
Added an entity, weathertype, and gamemode registry.
This commit is contained in:
@ -22,7 +22,7 @@ package com.sk89q.worldedit.sponge;
|
||||
import com.flowpowered.math.vector.Vector3d;
|
||||
import com.sk89q.worldedit.entity.BaseEntity;
|
||||
import com.sk89q.worldedit.entity.Entity;
|
||||
import com.sk89q.worldedit.entity.metadata.EntityType;
|
||||
import com.sk89q.worldedit.entity.metadata.EntityProperties;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
import com.sk89q.worldedit.util.Location;
|
||||
import com.sk89q.worldedit.world.NullWorld;
|
||||
@ -90,8 +90,8 @@ class SpongeEntity implements Entity {
|
||||
public <T> T getFacet(Class<? extends T> cls) {
|
||||
org.spongepowered.api.entity.Entity entity = entityRef.get();
|
||||
if (entity != null) {
|
||||
if (EntityType.class.isAssignableFrom(cls)) {
|
||||
return (T) new SpongeEntityType(entity);
|
||||
if (EntityProperties.class.isAssignableFrom(cls)) {
|
||||
return (T) new SpongeEntityProperties(entity);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ package com.sk89q.worldedit.sponge;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import com.sk89q.worldedit.entity.metadata.EntityType;
|
||||
import com.sk89q.worldedit.entity.metadata.EntityProperties;
|
||||
import org.spongepowered.api.data.key.Keys;
|
||||
import org.spongepowered.api.entity.Entity;
|
||||
import org.spongepowered.api.entity.ExperienceOrb;
|
||||
@ -46,11 +46,11 @@ import org.spongepowered.api.text.Text;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class SpongeEntityType implements EntityType {
|
||||
public class SpongeEntityProperties implements EntityProperties {
|
||||
|
||||
private final Entity entity;
|
||||
|
||||
public SpongeEntityType(Entity entity) {
|
||||
public SpongeEntityProperties(Entity entity) {
|
||||
checkNotNull(entity);
|
||||
this.entity = entity;
|
||||
}
|
@ -23,6 +23,8 @@ import com.flowpowered.math.vector.Vector3d;
|
||||
import com.sk89q.util.StringUtil;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||
import com.sk89q.worldedit.world.gamemode.GameMode;
|
||||
import com.sk89q.worldedit.world.gamemode.GameModes;
|
||||
import com.sk89q.worldedit.world.item.ItemTypes;
|
||||
import com.sk89q.worldedit.entity.BaseEntity;
|
||||
import com.sk89q.worldedit.extension.platform.AbstractPlayerActor;
|
||||
@ -170,6 +172,17 @@ public class SpongePlayer extends AbstractPlayerActor {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameMode getGameMode() {
|
||||
return GameModes.get(player.getGameModeData().type().get().getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGameMode(GameMode gameMode) {
|
||||
player.getGameModeData().type().set(Sponge.getRegistry().getType(org.spongepowered.api.entity.living.player.gamemode.GameMode.class,
|
||||
gameMode.getId()).get());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SessionKey getSessionKey() {
|
||||
return new SessionKeyImpl(player.getUniqueId(), player.getName());
|
||||
|
@ -19,6 +19,8 @@
|
||||
|
||||
package com.sk89q.worldedit.sponge;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import com.flowpowered.math.vector.Vector3d;
|
||||
import com.flowpowered.math.vector.Vector3i;
|
||||
import com.sk89q.worldedit.EditSession;
|
||||
@ -27,15 +29,17 @@ import com.sk89q.worldedit.Vector2D;
|
||||
import com.sk89q.worldedit.WorldEditException;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||
import com.sk89q.worldedit.registry.state.Property;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.item.ItemTypes;
|
||||
import com.sk89q.worldedit.entity.BaseEntity;
|
||||
import com.sk89q.worldedit.entity.Entity;
|
||||
import com.sk89q.worldedit.regions.Region;
|
||||
import com.sk89q.worldedit.registry.state.Property;
|
||||
import com.sk89q.worldedit.util.Location;
|
||||
import com.sk89q.worldedit.world.AbstractWorld;
|
||||
import com.sk89q.worldedit.world.biome.BaseBiome;
|
||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||
import com.sk89q.worldedit.world.item.ItemTypes;
|
||||
import com.sk89q.worldedit.world.weather.WeatherType;
|
||||
import com.sk89q.worldedit.world.weather.WeatherTypes;
|
||||
import org.spongepowered.api.Sponge;
|
||||
import org.spongepowered.api.block.BlockSnapshot;
|
||||
import org.spongepowered.api.block.BlockState;
|
||||
@ -49,15 +53,15 @@ import org.spongepowered.api.entity.EntityType;
|
||||
import org.spongepowered.api.entity.EntityTypes;
|
||||
import org.spongepowered.api.world.BlockChangeFlags;
|
||||
import org.spongepowered.api.world.World;
|
||||
import org.spongepowered.api.world.weather.Weather;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* An adapter to Minecraft worlds for WorldEdit.
|
||||
@ -266,7 +270,7 @@ public abstract class SpongeWorld extends AbstractWorld {
|
||||
public Entity createEntity(Location location, BaseEntity entity) {
|
||||
World world = getWorld();
|
||||
|
||||
EntityType entityType = Sponge.getRegistry().getType(EntityType.class, entity.getTypeId()).get();
|
||||
EntityType entityType = Sponge.getRegistry().getType(EntityType.class, entity.getType().getId()).get();
|
||||
Vector3d pos = new Vector3d(location.getX(), location.getY(), location.getZ());
|
||||
|
||||
org.spongepowered.api.entity.Entity newEnt = world.createEntity(entityType, pos);
|
||||
@ -289,6 +293,26 @@ public abstract class SpongeWorld extends AbstractWorld {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WeatherType getWeather() {
|
||||
return WeatherTypes.get(getWorld().getWeather().getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getRemainingWeatherDuration() {
|
||||
return getWorld().getRemainingDuration();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWeather(WeatherType weatherType) {
|
||||
getWorld().setWeather(Sponge.getRegistry().getType(Weather.class, weatherType.getId()).get());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWeather(WeatherType weatherType, long duration) {
|
||||
getWorld().setWeather(Sponge.getRegistry().getType(Weather.class, weatherType.getId()).get(), duration);
|
||||
}
|
||||
|
||||
/**
|
||||
* Thrown when the reference to the world is lost.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user