actions test
This commit is contained in:
parent
171c4a6878
commit
2e8457f9df
5 changed files with 235 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,5 +1,4 @@
|
||||||
# User-specific stuff
|
# User-specific stuff
|
||||||
server/
|
|
||||||
# .idea/
|
# .idea/
|
||||||
.vscode/
|
.vscode/
|
||||||
.settings/
|
.settings/
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/modules/raxen.iml" filepath="$PROJECT_DIR$/.idea/modules/raxen.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/raxen.main.iml" filepath="$PROJECT_DIR$/.idea/modules/raxen.main.iml" />
|
<module fileurl="file://$PROJECT_DIR$/.idea/modules/raxen.main.iml" filepath="$PROJECT_DIR$/.idea/modules/raxen.main.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/raxen.test.iml" filepath="$PROJECT_DIR$/.idea/modules/raxen.test.iml" />
|
<module fileurl="file://$PROJECT_DIR$/.idea/modules/raxen.test.iml" filepath="$PROJECT_DIR$/.idea/modules/raxen.test.iml" />
|
||||||
</modules>
|
</modules>
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
package me.unurled.raxen.manager.server;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import me.unurled.raxen.Raxen;
|
||||||
|
import me.unurled.raxen.components.clientbuild.Builds;
|
||||||
|
import me.unurled.raxen.components.clientbuild.PlayerList;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class BuildManager {
|
||||||
|
|
||||||
|
private Raxen raxen;
|
||||||
|
|
||||||
|
private HashMap<Builds, PlayerList> builds;
|
||||||
|
|
||||||
|
|
||||||
|
public BuildManager(Raxen raxen) {
|
||||||
|
this.raxen = raxen;
|
||||||
|
this.builds = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HashMap<Builds, PlayerList> getBuilds() {
|
||||||
|
return builds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addBuild(Builds build, PlayerList pl) {
|
||||||
|
builds.put(build, pl);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeBuild(Builds build) {
|
||||||
|
builds.remove(build);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builds getBuildByOwner(String owner) {
|
||||||
|
for (Map.Entry<Builds, PlayerList> entry : builds.entrySet()) {
|
||||||
|
if (entry.getKey().getOwner().toString().equals(owner)) {
|
||||||
|
return entry.getKey();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HashMap<Builds, PlayerList> getBuildsByOwner(String owner) {
|
||||||
|
HashMap<Builds, PlayerList> buildss = new HashMap<>();
|
||||||
|
for (Map.Entry<Builds, PlayerList> build : builds.entrySet()) {
|
||||||
|
if (build.getKey().getOwner().toString().equals(owner)) {
|
||||||
|
buildss.put(build.getKey(), build.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return buildss;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builds getBuildsByLocation(Location loc) {
|
||||||
|
for (Map.Entry<Builds, PlayerList> build : builds.entrySet()) {
|
||||||
|
for (Block b : build.getKey().getBlocks()) {
|
||||||
|
Location bl = b.getLocation();
|
||||||
|
if (bl.getWorld() == loc.getWorld() && bl.getBlockX() == loc.getBlockX()
|
||||||
|
&& bl.getBlockY() == loc.getBlockY() && bl.getBlockZ() == loc.getBlockZ()) {
|
||||||
|
return build.getKey();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isABuild(Location loc) {
|
||||||
|
for (Map.Entry<Builds, PlayerList> build : builds.entrySet()) {
|
||||||
|
for (Block b : build.getKey().getBlocks()) {
|
||||||
|
Location bl = b.getLocation();
|
||||||
|
if (bl.getWorld() == loc.getWorld() && bl.getBlockX() == loc.getBlockX()
|
||||||
|
&& bl.getBlockY() == loc.getBlockY() && bl.getBlockZ() == loc.getBlockZ()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isInPlayerList(Builds build, Player player) {
|
||||||
|
if (!builds.containsKey(build)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return builds.get(build).getPlayers().contains(player);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
package me.unurled.raxen.manager.server;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import lombok.Getter;
|
||||||
|
import me.unurled.raxen.Raxen;
|
||||||
|
import me.unurled.raxen.components.glyph.Glyph;
|
||||||
|
import me.unurled.raxen.components.glyph.GlyphBuilder;
|
||||||
|
import me.unurled.raxen.config.GlyphConfig;
|
||||||
|
|
||||||
|
public class GlyphManager {
|
||||||
|
|
||||||
|
private Raxen main;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private HashMap<Character, Glyph> glyphs;
|
||||||
|
private GlyphConfig glyphConfig;
|
||||||
|
private Map<File, Map<String, GlyphBuilder>> map;
|
||||||
|
|
||||||
|
public GlyphManager(Raxen main) {
|
||||||
|
this.main = main;
|
||||||
|
glyphs = new HashMap<>();
|
||||||
|
registerGlyphs();
|
||||||
|
}
|
||||||
|
|
||||||
|
void registerGlyphs() {
|
||||||
|
// TODO: register all glyphs
|
||||||
|
glyphConfig = new GlyphConfig(main);
|
||||||
|
map = glyphConfig.parseGlyphConfigs();
|
||||||
|
final List<String> glyphList = new ArrayList<>();
|
||||||
|
for (final Map<String, GlyphBuilder> subMap : map.values()) {
|
||||||
|
glyphList.addAll(subMap.keySet());
|
||||||
|
}
|
||||||
|
for (String glyph : glyphList) {
|
||||||
|
// registerGlyph(glyph);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,106 @@
|
||||||
|
package me.unurled.raxen.manager.server;
|
||||||
|
|
||||||
|
import com.sk89q.worldedit.EditSession;
|
||||||
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
|
import com.sk89q.worldedit.bukkit.BukkitAdapter;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats;
|
||||||
|
import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader;
|
||||||
|
import com.sk89q.worldedit.function.operation.Operation;
|
||||||
|
import com.sk89q.worldedit.math.BlockVector3;
|
||||||
|
import com.sk89q.worldedit.session.ClipboardHolder;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
import lombok.Getter;
|
||||||
|
import me.unurled.raxen.components.tutorial.Tutorial;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class TutorialManager {
|
||||||
|
|
||||||
|
Map<UUID, Tutorial> tutorials = new HashMap<>();
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
Map<UUID, Location> locations = new HashMap<>();
|
||||||
|
|
||||||
|
double x = 0;
|
||||||
|
double y = 0;
|
||||||
|
double z = 0;
|
||||||
|
|
||||||
|
static final double STEP = 150;
|
||||||
|
|
||||||
|
public void addTutorial(Player player, Tutorial tutorial) {
|
||||||
|
tutorials.put(player.getUniqueId(), tutorial);
|
||||||
|
locations.put(player.getUniqueId(), player.getLocation());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Tutorial getTutorial(UUID uuid) {
|
||||||
|
return tutorials.get(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeTutorial(UUID uuid) {
|
||||||
|
tutorials.remove(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<UUID, Tutorial> getTutorials() {
|
||||||
|
return tutorials;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void startTutorial(Player player) {
|
||||||
|
if (tutorials.containsKey(player.getUniqueId())) {
|
||||||
|
Tutorial tutorial = tutorials.get(player.getUniqueId());
|
||||||
|
Location loc = generateTutorial(player);
|
||||||
|
tutorial.startTutorial(player, loc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location generateTutorial(Player player) {
|
||||||
|
double eX, eY, eZ;
|
||||||
|
if (x == 0 && y == 0 && z == 0) {
|
||||||
|
eX = 0;
|
||||||
|
eY = 0;
|
||||||
|
eZ = 0;
|
||||||
|
} else {
|
||||||
|
eX = x + STEP;
|
||||||
|
eY = y;
|
||||||
|
eZ = z;
|
||||||
|
}
|
||||||
|
World world = Bukkit.getWorld("tutorial");
|
||||||
|
// generate world / location (maybe juste have a schematic and paste it in another part of the world...)
|
||||||
|
File file = new File(Bukkit.getPluginsFolder() + "/Raxen/schematics/template_tuto.schem");
|
||||||
|
Clipboard clipboard = null;
|
||||||
|
ClipboardFormat format = ClipboardFormats.findByFile(file);
|
||||||
|
try (ClipboardReader reader = format.getReader(new FileInputStream(file))) {
|
||||||
|
clipboard = reader.read();
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
try (EditSession editSession = WorldEdit.getInstance()
|
||||||
|
.newEditSession(BukkitAdapter.adapt(world))) {
|
||||||
|
Operation operation = new ClipboardHolder(clipboard)
|
||||||
|
.createPaste(editSession)
|
||||||
|
.to(BlockVector3.at(eX, eY, eZ))
|
||||||
|
.ignoreAirBlocks(false)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
// gen holo
|
||||||
|
|
||||||
|
// gen mobs / entities
|
||||||
|
|
||||||
|
// gen loots
|
||||||
|
|
||||||
|
// set global last x, y, z
|
||||||
|
x = eX;
|
||||||
|
y = eY;
|
||||||
|
z = eZ;
|
||||||
|
return new Location(world, x, y, z);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue