actions test

This commit is contained in:
unurled 2023-06-20 15:26:05 +02:00
parent 171c4a6878
commit 2e8457f9df
Signed by: unurled
GPG key ID: FDBC9CBE1F82423F
5 changed files with 235 additions and 1 deletions

1
.gitignore vendored
View file

@ -1,5 +1,4 @@
# User-specific stuff
server/
# .idea/
.vscode/
.settings/

View file

@ -2,6 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<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.test.iml" filepath="$PROJECT_DIR$/.idea/modules/raxen.test.iml" />
</modules>

View file

@ -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);
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}