Skip to content

Commit

Permalink
Redsocket
Browse files Browse the repository at this point in the history
  • Loading branch information
DaNussi committed Apr 8, 2024
1 parent e984261 commit 56f6b77
Show file tree
Hide file tree
Showing 26 changed files with 625 additions and 664 deletions.
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,8 @@ dependencies {
// minecraftLibrary jarJar('redis.clients:jedis:3.6.0')
minecraftLibrary jarJar(group: 'redis.clients', name: 'jedis', version: '[3.6.0,)')
// minecraftLibrary jarJar('org.apache.commons:commons-pool2:2.11.1')
minecraftLibrary jarJar(group: 'org.apache.commons', name: 'commons-pool2', version: '[2.11.1,)')
minecraftLibrary jarJar(group: 'com.rabbitmq', name: 'amqp-client', version: '5.20.0')
// minecraftLibrary jarJar(group: 'org.apache.commons', name: 'commons-pool2', version: '[2.11.1,)')
// minecraftLibrary jarJar(group: 'com.rabbitmq', name: 'amqp-client', version: '5.20.0')

// For more info...
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
Expand Down
Binary file modified redis/data/dump.rdb
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@
import net.nussi.dedicated_applied_energistics.init.BlockInit;
import net.nussi.dedicated_applied_energistics.init.ItemInit;
import net.nussi.dedicated_applied_energistics.init.TabInit;
import net.nussi.dedicated_applied_energistics.websockets.WebsocketClientManager;
import net.nussi.dedicated_applied_energistics.websockets.WebsocketHost;
import net.nussi.dedicated_applied_energistics.redsocket.Redsocket;
import org.slf4j.Logger;

import java.net.URISyntaxException;

@Mod(DedicatedAppliedEnegistics.MODID)
public class DedicatedAppliedEnegistics
{
private static final Logger LOGGER = LogUtils.getLogger();

public static final String MODID = "dae2";
public static final WebsocketHost WEBSOCKET_HOST = new WebsocketHost();
public static final WebsocketClientManager WEBSOCKET_CLIENT_MANAGER = new WebsocketClientManager();
public static Redsocket REDSOCKET;

public DedicatedAppliedEnegistics()
{
Expand All @@ -40,14 +40,12 @@ public DedicatedAppliedEnegistics()

public static void commonSetup(FMLCommonSetupEvent event) {

if(DedicatedAppliedEnergisticsController.CONFIG_VALUE_BEHAVIOUR_HOST_IP_AUTO_DETECT.get()) {
String ip = DedicatedAppliedEnergisticsController.getHostAddress();
LOGGER.info("BEHAVIOUR_HOST_IP_AUTO_DETECT is enabled and detected ip: " + ip);
DedicatedAppliedEnergisticsController.CONFIG_VALUE_HOST_IP.set(ip);
try {
REDSOCKET = new Redsocket("dae2", DedicatedAppliedEnergisticsController.CONFIG_VALUE_REDIS_URI.get());
} catch (URISyntaxException e) {
LOGGER.error("Failed to start redsocket");
e.printStackTrace();
}

WEBSOCKET_HOST.start();
WEBSOCKET_CLIENT_MANAGER.start();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,40 +17,21 @@ public class DedicatedAppliedEnergisticsController {
public static ForgeConfigSpec.Builder CONFIG_BUILDER = new ForgeConfigSpec.Builder();
public static ForgeConfigSpec CONFIG_SPEC;

public static ForgeConfigSpec.ConfigValue<String> CONFIG_VALUE_RABBITMQ_URI;
public static ForgeConfigSpec.ConfigValue<String> CONFIG_VALUE_REDIS_URI;
public static ForgeConfigSpec.ConfigValue<String> CONFIG_VALUE_HOST_ID;
public static ForgeConfigSpec.ConfigValue<String> CONFIG_VALUE_HOST_IP;
public static ForgeConfigSpec.ConfigValue<Integer> CONFIG_VALUE_HOST_PORT;

public static ForgeConfigSpec.ConfigValue<Boolean> CONFIG_VALUE_BEHAVIOUR_AUTOSTART;
public static ForgeConfigSpec.ConfigValue<Boolean> CONFIG_VALUE_BEHAVIOUR_HOST_IP_AUTO_DETECT;

static {
CONFIG_BUILDER.push("Config for DAE2!");

CONFIG_VALUE_RABBITMQ_URI = CONFIG_BUILDER.define("RABBITMQ_URI", "amqp://guest:guest@localhost:5672/");
CONFIG_VALUE_REDIS_URI = CONFIG_BUILDER.define("REDIS_URI", "redis://localhost:6379/");
CONFIG_VALUE_HOST_ID = CONFIG_BUILDER.define("HOST_ID", UUID.randomUUID().toString());
CONFIG_VALUE_HOST_IP = CONFIG_BUILDER.define("HOST_IP", getHostAddress());
CONFIG_VALUE_HOST_PORT = CONFIG_BUILDER.define("HOST_PORT", 7894);

CONFIG_VALUE_BEHAVIOUR_AUTOSTART = CONFIG_BUILDER.define("BEHAVIOUR_AUTOSTART", false);
CONFIG_VALUE_BEHAVIOUR_HOST_IP_AUTO_DETECT = CONFIG_BUILDER.define("BEHAVIOUR_HOST_IP_AUTO_DETECT", true);

CONFIG_BUILDER.pop();
CONFIG_SPEC = CONFIG_BUILDER.build();
}

public static String getHostAddress() {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (Exception e) {
LOGGER.error("Failed to get host ip using 127.0.0.1");
return "127.0.0.1";
}
}

@SubscribeEvent
public static void onServerStopping(ServerStoppingEvent event) throws Exception {
// Stop();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,13 @@
import appeng.api.networking.GridFlags;
import appeng.api.networking.IGridNodeListener;
import appeng.api.networking.crafting.ICraftingProvider;
import appeng.api.networking.energy.IEnergyService;
import appeng.api.networking.energy.IEnergySource;
import appeng.api.networking.ticking.IGridTickable;
import appeng.api.orientation.BlockOrientation;
import appeng.api.stacks.AEItemKey;
import appeng.api.storage.IStorageProvider;
import appeng.api.util.AECableType;
import appeng.blockentity.grid.AENetworkBlockEntity;
import com.mojang.logging.LogUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.item.ItemStack;
Expand All @@ -34,9 +29,10 @@
import java.net.URI;
import java.util.HashMap;
import java.util.Set;
import java.util.UUID;

import static net.nussi.dedicated_applied_energistics.DedicatedAppliedEnegistics.MODID;
import static net.nussi.dedicated_applied_energistics.DedicatedAppliedEnergisticsController.*;
import static net.nussi.dedicated_applied_energistics.DedicatedAppliedEnergisticsController.CONFIG_VALUE_REDIS_URI;

@Mod.EventBusSubscriber(modid = MODID, bus = Mod.EventBusSubscriber.Bus.FORGE)
public class InterDimensionalInterfaceBlockEntity extends AENetworkBlockEntity {
Expand All @@ -51,7 +47,7 @@ public InterDimensionalInterfaceBlockEntity(BlockPos pos, BlockState state) {
super(BlockEntityTypeInit.INTER_DIMENSIONAL_INTERFACE_ENTITY_TYPE.get(), pos, state);


this.uuid = CONFIG_VALUE_HOST_ID.get() + "_" + this.getBlockPos().getX() + "_" + this.getBlockPos().getY() + "_" + this.getBlockPos().getZ();
this.uuid = UUID.randomUUID().toString();

getMainNode()
.setFlags(GridFlags.REQUIRE_CHANNEL)
Expand All @@ -73,10 +69,6 @@ public String getUuid() {
return uuid;
}

public Channel getRabbitmq() {
return rabbitmq_channel;
}

public Jedis getRedis() {
return redis_connection;
}
Expand Down Expand Up @@ -127,30 +119,11 @@ public void onMainNodeStateChanged(IGridNodeListener.State reason) {
}

// Connect Database
private Connection rabbit_connection;
private Channel rabbitmq_channel;
private JedisPool redis_pool;
private Jedis redis_connection;

private boolean connectDatabase() {

for (int i = 0; i <= 5; i++) {
try {
LOGGER.debug(uuid + " | Connecting to " + CONFIG_VALUE_RABBITMQ_URI.get());
ConnectionFactory factory = new ConnectionFactory();
factory.setUri(CONFIG_VALUE_RABBITMQ_URI.get());


this.rabbit_connection = factory.newConnection();
this.rabbitmq_channel = rabbit_connection.createChannel();
break;
} catch (Exception e) {
LOGGER.error(uuid + " | Failed to start rabbit mq connection! Retry " + i + "/5... ");
// e.printStackTrace();
if(i == 5) return false;
}
}

for (int i = 0; i <= 5; i++) {
try {
LOGGER.debug(uuid + " | Connecting to " + CONFIG_VALUE_REDIS_URI.get());
Expand All @@ -167,24 +140,6 @@ private boolean connectDatabase() {

private void disconnectDatabase() {

if(this.rabbitmq_channel != null && this.rabbitmq_channel.isOpen()) {
try {
this.rabbitmq_channel.close();
} catch (Exception e) {
LOGGER.error(uuid + " | Failed to close rabbit mq channel");
e.printStackTrace();
}
}

if(this.rabbit_connection != null && this.rabbit_connection.isOpen()) {
try {
this.rabbit_connection.close();
} catch (Exception e) {
LOGGER.error(uuid + " | Failed to close rabbit mq connection");
e.printStackTrace();
}
}

if(this.redis_connection != null && this.redis_connection.isConnected()) {
try {
this.redis_connection.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
import net.nussi.dedicated_applied_energistics.DedicatedAppliedEnergisticsController;
import net.nussi.dedicated_applied_energistics.blockentities.InterDimensionalInterfaceBlockEntity;

import java.util.UUID;

public class RedisHelper {

public static String getPath(MEStorage storage, InterDimensionalInterfaceBlockEntity blockEntity) {
return DedicatedAppliedEnergisticsController.CONFIG_VALUE_HOST_ID.get() + "/" +
return blockEntity.getUuid() + "/" +
blockEntity.getBlockPos().getX() + "_" + blockEntity.getBlockPos().getY() + "_" + blockEntity.getBlockPos().getZ() + "/" +
storage.hashCode();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import appeng.api.storage.MEStorage;
import appeng.core.definitions.AEItems;
import com.mojang.logging.LogUtils;
import com.rabbitmq.client.Channel;
import net.nussi.dedicated_applied_energistics.blockentities.InterDimensionalInterfaceBlockEntity;
import net.nussi.dedicated_applied_energistics.providers.virtualdisk.VirtualDiskClient;
import net.nussi.dedicated_applied_energistics.providers.virtualdisk.VirtualDiskHost;
Expand All @@ -32,7 +31,6 @@ public class InterDimensionalInterfaceStorage implements IStorageProvider, IGrid

private InterDimensionalInterfaceBlockEntity instance;
private Jedis redis;
private Channel rabbitmq;

private Vector<VirtualDiskHost> diskHosts = new Vector<>();
private Vector<VirtualDiskClient> diskClients = new Vector<>();
Expand All @@ -47,7 +45,6 @@ public void onStart() {
LOGGER.info(instance.getUuid() + " | Starting storage provider");

this.redis = instance.getRedis();
this.rabbitmq = instance.getRabbitmq();

LOGGER.info(instance.getUuid() + " | Started storage provider");
}
Expand Down Expand Up @@ -95,11 +92,6 @@ public void indexGrid() {
return;
}

if (rabbitmq == null) {
LOGGER.warn(instance.getUuid() + " | Skipping indexing of grid because rabbit mq is null");
return;
}

// LOGGER.info(instance.getUuid() + " | Indexing grid");
var grid = instance.getMainNode().getGrid();
if (grid == null) {
Expand Down Expand Up @@ -175,7 +167,7 @@ private void updateVirtualHosts(List<MEStorage> storageCells) {
List<VirtualDiskHost> hosts = new ArrayList<>();

for (MEStorage storageCell : storageCells) {
hosts.add(new VirtualDiskHost(storageCell, 0, instance));
hosts.add(new VirtualDiskHost(storageCell, instance));
}

// REMOVE HOST IF IT DOSEN'T EXIST ANYMORE
Expand Down
Loading

0 comments on commit 56f6b77

Please sign in to comment.