ProjectAres/Util/bukkit/src/main/java/tc/oc/commons/bukkit/inject/BukkitServerManifest.java

50 lines
1.8 KiB
Java

package tc.oc.commons.bukkit.inject;
import java.io.File;
import java.nio.file.Path;
import javax.inject.Named;
import com.google.inject.Provides;
import com.google.inject.TypeLiteral;
import com.google.inject.assistedinject.FactoryModuleBuilder;
import org.bukkit.plugin.Plugin;
import tc.oc.commons.bukkit.bossbar.BossBarFactory;
import tc.oc.commons.bukkit.bossbar.BossBarFactoryImpl;
import tc.oc.commons.bukkit.chat.BukkitAudiences;
import tc.oc.commons.bukkit.item.RenderedItemBuilder;
import tc.oc.commons.bukkit.logging.BukkitLoggerFactory;
import tc.oc.commons.bukkit.permissions.BukkitPermissionRegistry;
import tc.oc.commons.bukkit.permissions.PermissionRegistry;
import tc.oc.commons.core.inject.SingletonManifest;
import tc.oc.commons.core.logging.Loggers;
import tc.oc.commons.core.plugin.PluginResolver;
import tc.oc.commons.core.server.MinecraftServerManifest;
public class BukkitServerManifest extends SingletonManifest {
@Override
protected void configure() {
install(new MinecraftServerManifest());
final FactoryModuleBuilder fmb = new FactoryModuleBuilder();
install(fmb.build(RenderedItemBuilder.Factory.class));
bind(new TypeLiteral<PluginResolver<Plugin>>(){}).to(BukkitPluginResolver.class);
bind(Loggers.class).to(BukkitLoggerFactory.class);
bind(tc.oc.commons.core.chat.Audiences.class).to(tc.oc.commons.bukkit.chat.Audiences.class);
bind(tc.oc.commons.bukkit.chat.Audiences.class).to(BukkitAudiences.class);
bind(PermissionRegistry.class).to(BukkitPermissionRegistry.class);
bind(BossBarFactory.class).to(BossBarFactoryImpl.class);
}
@Provides @Named("serverRoot")
File serverRootFile() {
return new File(".").getAbsoluteFile();
}
@Provides @Named("serverRoot")
Path serverRootPath() {
return serverRootFile().toPath();
}
}