Skip to content

Commit

Permalink
Merge branch 'Naimadx123-master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mfnalex committed Dec 5, 2024
2 parents f23ddfb + f415f7e commit 050ff7a
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 16 deletions.
36 changes: 27 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.jeff_media</groupId>
<artifactId>CustomBlocks</artifactId>
<version>1.5.22</version>
<version>1.5.23</version>

<properties>
<maven.compiler.source>8</maven.compiler.source>
Expand All @@ -15,7 +15,7 @@

<repositories>
<repository>
<id>spigot-repo</id>
<id>spigot-snapshots</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
Expand All @@ -27,10 +27,15 @@
<url>https://repo.jeff-media.com/public/</url>
</repository>
<repository>
<id>oraxen</id>
<id>oraxen-releases</id>
<name>Oraxen Repository</name>
<url>https://repo.oraxen.com/releases</url>
</repository>
<repository>
<id>nexo-snapshots</id>
<name>Nexo Repository</name>
<url>https://repo.nexomc.com/snapshots</url>
</repository>
</repositories>

<dependencies>
Expand All @@ -46,12 +51,6 @@
<version>14.0.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.LoneDev6</groupId>
<artifactId>api-itemsadder</artifactId>
Expand Down Expand Up @@ -110,6 +109,25 @@
</exclusions>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.nexomc</groupId>
<artifactId>nexo</artifactId>
<version>0.2.1-dev.4</version>
<scope>provided</scope>
<classifier>dev</classifier>
<exclusions>
<exclusion>
<groupId>net.byteflux</groupId>
<artifactId>libby-bukkit</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

<distributionManagement>
Expand Down
10 changes: 4 additions & 6 deletions src/main/java/de/jeff_media/customblocks/CustomBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,12 @@

import com.jeff_media.jefflib.exceptions.InvalidBlockDataException;
import com.jeff_media.jefflib.exceptions.MissingPluginException;
import de.jeff_media.customblocks.implentation.HeadBlock;
import de.jeff_media.customblocks.implentation.ItemsAdderBlock;
import de.jeff_media.customblocks.implentation.OraxenBlock;
import de.jeff_media.customblocks.implentation.VanillaBlock;
import de.jeff_media.customblocks.implentation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.SneakyThrows;
import org.bukkit.*;
import org.bukkit.block.Block;
import org.bukkit.block.data.BlockData;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.entity.Entity;
import org.bukkit.plugin.Plugin;

Expand Down Expand Up @@ -52,6 +47,9 @@ public static CustomBlock fromStringOrThrow(String fullId) throws InvalidBlockDa
case "itemsadder":
checkForPlugin("itemsadder","ItemsAdder");
return new ItemsAdderBlock(id);
case "nexo":
checkForPlugin("nexo","Nexo");
return new NexoBlock(id);
case "oraxen":
checkForPlugin("oraxen","Oraxen");
return new OraxenBlock(id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import org.bukkit.plugin.Plugin;
import org.bukkit.util.BoundingBox;

import java.lang.reflect.Method;
import java.util.Collection;
import java.util.logging.Logger;
import java.util.stream.Collectors;
Expand Down
109 changes: 109 additions & 0 deletions src/main/java/de/jeff_media/customblocks/implentation/NexoBlock.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
package de.jeff_media.customblocks.implentation;

import com.jeff_media.jefflib.exceptions.InvalidBlockDataException;
import com.nexomc.nexo.api.NexoBlocks;
import com.nexomc.nexo.api.NexoFurniture;
import com.nexomc.nexo.mechanics.custom_block.noteblock.NoteBlockMechanicFactory;
import com.nexomc.nexo.mechanics.furniture.FurnitureMechanic;
import de.jeff_media.customblocks.CustomBlock;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Entity;
import org.bukkit.entity.ItemDisplay;

import java.util.Objects;

public class NexoBlock extends CustomBlock {

private FurnitureMechanic furnitureMechanic = null;
private ItemType type;

public NexoBlock(String id) throws InvalidBlockDataException {
super(id);

// Blocks
if (NexoBlocks.noteBlockMechanic(id) != null) {
type = ItemType.NOTE_BLOCK;
return;
}

// Furniture
FurnitureMechanic mechanicFactory = NexoFurniture.furnitureMechanic(id);
if (mechanicFactory != null) {
type = ItemType.FURNITURE;
furnitureMechanic = mechanicFactory;
return;
}


throw new InvalidBlockDataException("Could not find Nexo block: " + id);
}

private static float getYaw() {
return Float.parseFloat(System.getProperty("customblocks.nexo.yaw", "0"));
}

private static BlockFace getBlockFace() {
return BlockFace.valueOf(System.getProperty("customblocks.nexo.blockface", "DOWN"));
}


@Override
public void place(Block block, OfflinePlayer player) {
super.place(block, player);
switch (type) {
case FURNITURE:
block.setType(Material.AIR);
Entity placed = furnitureMechanic.place(block.getLocation(), getYaw(), getBlockFace());
if (placed != null) {
entities.add(placed.getUniqueId());
}
break;
case NOTE_BLOCK:
NoteBlockMechanicFactory.Companion.setBlockModel(block, getId());
break;

default:
throw new IllegalStateException();
}
}

@Override
public String getNamespace() {
return "nexo";
}

@Override
public void remove() {
if (furnitureMechanic != null) {

entities.stream().map(Bukkit::getEntity).filter(Objects::nonNull).forEach(entity -> {
try {
furnitureMechanic.removeBaseEntity((ItemDisplay) entity);
} catch (Exception ignored) {
}
});

}
super.remove();
}

@Override
public Material getMaterial() {
switch (type) {
case FURNITURE:
return Material.BARRIER;
case NOTE_BLOCK:
return Material.NOTE_BLOCK;
default:
throw new IllegalStateException();
}
}

private enum ItemType {
NOTE_BLOCK, FURNITURE
}
}

0 comments on commit 050ff7a

Please sign in to comment.