Skip to content

Commit

Permalink
use EnabledState
Browse files Browse the repository at this point in the history
  • Loading branch information
burdoto committed Dec 19, 2023
1 parent 096f98d commit d8273d0
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 5 deletions.
6 changes: 3 additions & 3 deletions src/core/main/java/org/comroid/mcsd/core/MCSD.java
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ public ScheduledFuture<?> shutdownForAutoUpdateTask(@Autowired ScheduledExecutor
@DependsOn("applicationContextProvider")
public Set<AbstractEntity> migrateEntities() {
class Helper {
<T extends ModulePrototype> void getOrMigrate(Server server, ModulePrototype.Type type, Supplier<T> migratedObj) {
<T extends AbstractEntity> void getOrMigrate(Server server, ModulePrototype.Type type, Supplier<T> migratedObj) {
var repo = type.getRepo().apply(MCSD.this);
if (repo.findByServerIdAndDtype(server.getId(), type.name()).isPresent())
return;
Expand Down Expand Up @@ -245,8 +245,8 @@ <T extends AbstractEntity> void save(AbstractEntity.Repo<?> repo, T migrate) {
// //todo: fix BackupModule.Factory,
helper.getOrMigrate(server, ModulePrototype.Type.Backup,
() -> new BackupModulePrototype()
.setServer(server)
.setEnabled(false));
.setEnabled(false)
.setServer(server));
// ConsolePlayerEventModule.Factory,
helper.getOrMigrate(server, ModulePrototype.Type.ConsolePlayerEvent,
() -> new ConsolePlayerEventModulePrototype()
Expand Down
6 changes: 6 additions & 0 deletions src/core/main/java/org/comroid/mcsd/core/ServerManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.comroid.util.Streams;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Service;

import java.time.Duration;
Expand All @@ -24,6 +25,7 @@

@Log
@Service
@DependsOn("migrateEntities")
public class ServerManager {
public static final Duration TickRate = Duration.ofSeconds(30);
private final Map<UUID, Entry> cache = new ConcurrentHashMap<>();
Expand Down Expand Up @@ -125,6 +127,10 @@ public long cleanupModules() {
.count();
}

public long reloadProtos() {
return 0; //todo
}

/**
* Loads all modules that are in DB but are not loaded as a module
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@
import org.comroid.mcsd.core.module.status.UpdateModule;
import org.comroid.mcsd.core.module.status.UptimeModule;
import org.comroid.mcsd.core.repo.module.ModuleRepo;
import org.jetbrains.annotations.Nullable;

import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Stream;

Expand All @@ -56,6 +58,11 @@ public abstract class ModulePrototype extends AbstractEntity {
private String dtype = Type.of(this).require(Enum::name, "Unimplemented type: " + lessSimpleName(getClass()));
private boolean enabled = true;

@Override
public @Nullable String getDisplayName() {
return Objects.requireNonNull(super.getDisplayName(), ()->dtype+" for "+server);
}

public <T extends ServerModule<P>, P extends ModulePrototype> T toModule(Server server) {
var type = Type.valueOf(dtype);
if (!type.proto.isAssignableFrom(getClass()))
Expand Down
13 changes: 11 additions & 2 deletions src/core/main/java/org/comroid/mcsd/core/module/ServerModule.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package org.comroid.mcsd.core.module;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.comroid.api.Component;
import org.comroid.api.Named;
import org.comroid.mcsd.core.ServerManager;
Expand All @@ -10,16 +13,22 @@

import static org.comroid.mcsd.core.util.ApplicationContextProvider.bean;

@Data
@Getter
@AllArgsConstructor
public abstract class ServerModule<T extends ModulePrototype> extends Component.Base implements Named {
protected final Server server;
protected final T proto;
protected T proto;

@Override
public @Nullable Component getParent() {
return bean(ServerManager.class).tree(server);
}

@Override
public boolean isEnabled() {
return proto.isEnabled();
}

@Override
public boolean isSubComponent() {
return true;
Expand Down

0 comments on commit d8273d0

Please sign in to comment.