-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b39d94f
commit 2439d01
Showing
16 changed files
with
796 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
plugins { | ||
id 'net.minecraftforge.gradle' version '[6.0,6.2)' | ||
id("com.github.johnrengelman.shadow") version "8.1.1" | ||
} | ||
|
||
forgeVersion = "1.20.1" | ||
|
||
minecraft { | ||
mappings channel: 'official', version: '1.20.1' | ||
} | ||
|
||
sourceSets.main.resources { srcDir 'src/generated/resources' } | ||
|
||
repositories { | ||
maven { | ||
name = 'spongepowered-repo' | ||
url = 'https://repo.spongepowered.org/maven' | ||
} | ||
|
||
maven { url 'https://jitpack.io' } | ||
maven { url "https://maven.envyware.co.uk/releases" } | ||
|
||
ivy { | ||
setUrl('https://download.nodecdn.net/containers/reforged/server/release') | ||
metadataSources { | ||
artifact() | ||
} | ||
patternLayout { | ||
artifact('[revision]/[artifact].[ext]') | ||
} | ||
} | ||
} | ||
|
||
dependencies { | ||
minecraft "net.minecraftforge:forge:1.20.1-47.1.44" | ||
|
||
implementation 'pixelmon:Pixelmon-1.20.1-9.2.0-server:9.2.0' | ||
|
||
implementation 'com.github.EnvyWare.ForgePlaceholderAPI:api:2.0.4' | ||
|
||
implementation group: 'org.spongepowered', name: 'configurate-yaml', version: '4.0.0' | ||
|
||
shadow group: 'com.envyful.api', name: 'commons', version: '5.0.1' | ||
shadow (group: 'com.envyful.api', name: 'forge20', version: '5.0.1') { | ||
transitive = false; | ||
} | ||
shadow (group: 'com.envyful.api', name: 'reforged20', version: '5.0.1') { | ||
transitive = false; | ||
} | ||
} | ||
|
||
shadowJar { | ||
finalizedBy('reobfJar') | ||
configurations = [project.configurations.shadow] | ||
zip64 = true | ||
setArchiveClassifier('') | ||
setArchiveBaseName(rootProject.name + "-Forge") | ||
|
||
relocate('org.spongepowered.configurate', 'com.envyful.better.poke.broadcaster.shade.configurate') | ||
relocate('org.yaml.snakeyaml', 'com.envyful.better.poke.broadcaster.shade.snakeyaml') | ||
relocate('io.leangen.geantyref', 'com.envyful.better.poke.broadcaster.shade.geantyref') | ||
relocate('com.google.gson', 'com.envyful.better.poke.broadcaster.shade.gson') | ||
relocate('com.zaxxer', 'com.envyful.better.poke.broadcaster.shade.hikari') | ||
relocate('org.slf4j', 'com.envyful.better.poke.broadcaster.shade.slf4j') | ||
relocate('com.envyful.api', 'com.envyful.better.poke.broadcaster.shade.envy.api') | ||
relocate('org.bstats', 'com.envyful.better.poke.broadcaster.shade.bstats') | ||
|
||
exclude "**/module-info.class" | ||
} | ||
|
||
jar.finalizedBy('shadowJar') | ||
build.finalizedBy('versionedRelease') |
63 changes: 63 additions & 0 deletions
63
forge20/src/main/java/com/envyful/better/poke/broadcaster/BetterPokeBroadcaster.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
package com.envyful.better.poke.broadcaster; | ||
|
||
import com.envyful.api.concurrency.UtilLogger; | ||
import com.envyful.api.config.yaml.YamlConfigFactory; | ||
import com.envyful.api.forge.command.ForgeCommandFactory; | ||
import com.envyful.better.poke.broadcaster.api.type.BroadcasterTypeRegistry; | ||
import com.envyful.better.poke.broadcaster.command.PokeBroadcasterCommand; | ||
import com.envyful.better.poke.broadcaster.config.BetterPokeBroadcasterConfig; | ||
import net.minecraftforge.common.MinecraftForge; | ||
import net.minecraftforge.event.RegisterCommandsEvent; | ||
import net.minecraftforge.event.server.ServerStartingEvent; | ||
import net.minecraftforge.eventbus.api.SubscribeEvent; | ||
import net.minecraftforge.fml.common.Mod; | ||
import org.apache.logging.log4j.LogManager; | ||
import org.apache.logging.log4j.Logger; | ||
|
||
import java.io.IOException; | ||
|
||
@Mod(BetterPokeBroadcaster.MOD_ID) | ||
public class BetterPokeBroadcaster { | ||
|
||
public static final String MOD_ID = "betterpokebroadcaster"; | ||
|
||
private static BetterPokeBroadcaster instance; | ||
|
||
private ForgeCommandFactory commandFactory = new ForgeCommandFactory(); | ||
|
||
private BetterPokeBroadcasterConfig config; | ||
private Logger logger = LogManager.getLogger(MOD_ID); | ||
|
||
public BetterPokeBroadcaster() { | ||
UtilLogger.setLogger(logger); | ||
instance = this; | ||
MinecraftForge.EVENT_BUS.register(this); | ||
BroadcasterTypeRegistry.init(); | ||
} | ||
|
||
@SubscribeEvent | ||
public void onServerStart(ServerStartingEvent event) { | ||
this.reloadConfig(); | ||
} | ||
|
||
public void reloadConfig() { | ||
try { | ||
this.config = YamlConfigFactory.getInstance(BetterPokeBroadcasterConfig.class); | ||
} catch (IOException e) { | ||
e.printStackTrace(); | ||
} | ||
} | ||
|
||
@SubscribeEvent | ||
public void onCommandRegister(RegisterCommandsEvent event) { | ||
this.commandFactory.registerCommand(event.getDispatcher(), new PokeBroadcasterCommand()); | ||
} | ||
|
||
public static BetterPokeBroadcaster getInstance() { | ||
return instance; | ||
} | ||
|
||
public BetterPokeBroadcasterConfig getConfig() { | ||
return this.config; | ||
} | ||
} |
19 changes: 19 additions & 0 deletions
19
forge20/src/main/java/com/envyful/better/poke/broadcaster/api/type/BroadcasterType.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
package com.envyful.better.poke.broadcaster.api.type; | ||
|
||
import com.pixelmonmod.pixelmon.entities.pixelmon.PixelmonEntity; | ||
import net.minecraft.server.level.ServerPlayer; | ||
import net.minecraftforge.eventbus.api.Event; | ||
|
||
public interface BroadcasterType<A extends Event> { | ||
|
||
String id(); | ||
|
||
boolean isCorrectEvent(Event e); | ||
|
||
PixelmonEntity getPixelmon(Event e); | ||
|
||
ServerPlayer getNearestPlayer(Event e, PixelmonEntity entity, double range); | ||
|
||
String translateMessage(Event e, String line, PixelmonEntity pixelmon, ServerPlayer nearestPlayer); | ||
|
||
} |
39 changes: 39 additions & 0 deletions
39
...0/src/main/java/com/envyful/better/poke/broadcaster/api/type/BroadcasterTypeRegistry.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package com.envyful.better.poke.broadcaster.api.type; | ||
|
||
import com.envyful.better.poke.broadcaster.api.type.impl.type.CaptureBroadcasterType; | ||
import com.envyful.better.poke.broadcaster.api.type.impl.type.DefeatBroadcasterType; | ||
import com.envyful.better.poke.broadcaster.api.type.impl.type.FleeBroadcasterType; | ||
import com.envyful.better.poke.broadcaster.api.type.impl.type.SpawnBroadcasterType; | ||
import com.google.common.collect.Maps; | ||
import com.pixelmonmod.pixelmon.Pixelmon; | ||
import net.minecraftforge.common.MinecraftForge; | ||
|
||
import java.util.Map; | ||
|
||
public class BroadcasterTypeRegistry { | ||
|
||
private static final Map<String, BroadcasterType<?>> TYPES = Maps.newHashMap(); | ||
|
||
public static void init() { | ||
|
||
} | ||
|
||
static { | ||
register(new SpawnBroadcasterType()); | ||
register(new CaptureBroadcasterType()); | ||
register(new DefeatBroadcasterType()); | ||
register(new FleeBroadcasterType()); | ||
} | ||
|
||
public static void register(BroadcasterType<?> type) { | ||
TYPES.put(type.id().toLowerCase(), type); | ||
|
||
MinecraftForge.EVENT_BUS.register(type); | ||
Pixelmon.EVENT_BUS.register(type); | ||
} | ||
|
||
public static BroadcasterType<?> get(String id) { | ||
return TYPES.get(id.toLowerCase()); | ||
} | ||
|
||
} |
54 changes: 54 additions & 0 deletions
54
.../main/java/com/envyful/better/poke/broadcaster/api/type/impl/AbstractBroadcasterType.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
package com.envyful.better.poke.broadcaster.api.type.impl; | ||
|
||
import com.envyful.better.poke.broadcaster.api.type.BroadcasterType; | ||
import com.pixelmonmod.pixelmon.entities.pixelmon.PixelmonEntity; | ||
import net.minecraft.server.level.ServerPlayer; | ||
import net.minecraftforge.eventbus.api.Event; | ||
|
||
public abstract class AbstractBroadcasterType<A extends Event> implements BroadcasterType<A> { | ||
|
||
protected final String id; | ||
protected final Class<A> clazz; | ||
|
||
public AbstractBroadcasterType(String id, Class<A> clazz) { | ||
this.id = id; | ||
this.clazz = clazz; | ||
} | ||
|
||
@Override | ||
public String id() { | ||
return this.id; | ||
} | ||
|
||
@Override | ||
public boolean isCorrectEvent(Event e) { | ||
if (!e.getClass().isAssignableFrom(this.clazz)) { | ||
return false; | ||
} | ||
|
||
return this.isEvent(this.clazz.cast(e)); | ||
} | ||
|
||
protected abstract boolean isEvent(A a); | ||
|
||
@Override | ||
public PixelmonEntity getPixelmon(Event e) { | ||
return this.getEntity(this.clazz.cast(e)); | ||
} | ||
|
||
protected abstract PixelmonEntity getEntity(A a); | ||
|
||
@Override | ||
public String translateMessage(Event e, String line, PixelmonEntity pixelmon, ServerPlayer nearestPlayer) { | ||
return this.translateEventMessage(this.clazz.cast(e), line, pixelmon, nearestPlayer); | ||
} | ||
|
||
protected abstract String translateEventMessage(A a, String line, PixelmonEntity pixelmon, ServerPlayer nearestPlayer); | ||
|
||
@Override | ||
public ServerPlayer getNearestPlayer(Event event, PixelmonEntity entity, double range) { | ||
return this.findNearestPlayer(this.clazz.cast(event), entity, range); | ||
} | ||
|
||
protected abstract ServerPlayer findNearestPlayer(A a, PixelmonEntity entity, double range); | ||
} |
50 changes: 50 additions & 0 deletions
50
...n/java/com/envyful/better/poke/broadcaster/api/type/impl/type/CaptureBroadcasterType.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
package com.envyful.better.poke.broadcaster.api.type.impl.type; | ||
|
||
import com.envyful.api.forge.world.UtilWorld; | ||
import com.envyful.api.reforged.pixelmon.sprite.UtilSprite; | ||
import com.envyful.better.poke.broadcaster.BetterPokeBroadcaster; | ||
import com.envyful.better.poke.broadcaster.api.type.impl.AbstractBroadcasterType; | ||
import com.envyful.better.poke.broadcaster.api.util.BroadcasterUtil; | ||
import com.pixelmonmod.pixelmon.api.events.CaptureEvent; | ||
import com.pixelmonmod.pixelmon.api.util.helpers.BiomeHelper; | ||
import com.pixelmonmod.pixelmon.entities.pixelmon.PixelmonEntity; | ||
import net.minecraft.server.level.ServerPlayer; | ||
import net.minecraftforge.eventbus.api.SubscribeEvent; | ||
|
||
public class CaptureBroadcasterType extends AbstractBroadcasterType<CaptureEvent.SuccessfulCapture> { | ||
|
||
public CaptureBroadcasterType() { | ||
super("capture", CaptureEvent.SuccessfulCapture.class); | ||
} | ||
|
||
@Override | ||
protected boolean isEvent(CaptureEvent.SuccessfulCapture event) { | ||
return true; | ||
} | ||
|
||
@Override | ||
protected PixelmonEntity getEntity(CaptureEvent.SuccessfulCapture event) { | ||
return event.getPokemon(); | ||
} | ||
|
||
@Override | ||
protected String translateEventMessage(CaptureEvent.SuccessfulCapture event, String line, PixelmonEntity pixelmon, ServerPlayer nearestPlayer) { | ||
return UtilSprite.replacePokemonPlaceholders(line.replace("%player%", nearestPlayer.getName().getString()) | ||
.replace("%x%", pixelmon.getX() + "") | ||
.replace("%y%", pixelmon.getY() + "") | ||
.replace("%z%", pixelmon.getZ() + "") | ||
.replace("%world%", UtilWorld.getName(pixelmon.level()) + "") | ||
.replace("%pokemon%", pixelmon.getPokemonName()) | ||
.replace("%biome%", BiomeHelper.getLocalizedBiomeName(pixelmon.level().getBiome(pixelmon.blockPosition())).getString()), pixelmon.getPokemon(), BetterPokeBroadcaster.getInstance().getConfig().getPlaceholderFormat()); | ||
} | ||
|
||
@Override | ||
protected ServerPlayer findNearestPlayer(CaptureEvent.SuccessfulCapture successfulCapture, PixelmonEntity entity, double range) { | ||
return successfulCapture.getPlayer(); | ||
} | ||
|
||
@SubscribeEvent | ||
public void onCapture(CaptureEvent.SuccessfulCapture event) { | ||
BroadcasterUtil.handleEvent(event); | ||
} | ||
} |
Oops, something went wrong.