Skip to content

Commit

Permalink
Implemented Forge/Fabric commands
Browse files Browse the repository at this point in the history
  • Loading branch information
p0t4t0sandwich committed Jun 3, 2023
1 parent a84774e commit 15a11d2
Show file tree
Hide file tree
Showing 17 changed files with 160 additions and 26 deletions.
4 changes: 1 addition & 3 deletions README.md
Expand Up @@ -57,9 +57,7 @@ pronouns:
- [ ] add sqlite support
- [ ] add h2 support
- [ ] add filestorage support
- [ ] Add support for more storage types
- [ ] Add Forge command
- [ ] Add Fabric command
- [ ] Fix weird Forge errors in log
- [ ] Add command permissions
- [ ] Add tab completion? -- API dependent
- [ ] Add table prefix option in config
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Expand Up @@ -8,7 +8,7 @@ subprojects {
apply plugin: 'java'

group = 'ca.sperrer.p0t4t0sandwich'
version = '1.0.0'
version = '1.0.1'

sourceCompatibility = 1.8
targetCompatibility = 1.8
Expand Down
3 changes: 2 additions & 1 deletion common/build.gradle
Expand Up @@ -31,7 +31,8 @@ shadowJar {
relocate 'dev.dejvokep', 'ca.sperrer.p0t4t0sandwich.lppronouns.lib.dejvokep'
relocate 'com.zaxxer.hikari', 'ca.sperrer.p0t4t0sandwich.lppronouns.lib.hikari'
relocate 'com.mysql', 'ca.sperrer.p0t4t0sandwich.lppronouns.lib.mysql'
relocate 'org.mongodb', 'ca.sperrer.p0t4t0sandwich.lppronouns.lib.mongodb'
relocate 'com.mongodb', 'ca.sperrer.p0t4t0sandwich.lppronouns.lib.mongodb'
relocate 'org.bson', 'ca.sperrer.p0t4t0sandwich.lppronouns.lib.bson'
}

artifacts {
Expand Down
Expand Up @@ -48,7 +48,8 @@ public static PronounsData getPronounsData(Database database, HashMap<String, St
return null;
}
} catch (Exception e) {
System.err.println(Arrays.toString(e.getStackTrace()));
System.err.println(e);
e.printStackTrace();
return null;
}
}
Expand Down
2 changes: 1 addition & 1 deletion fabric/build.gradle
Expand Up @@ -5,7 +5,7 @@ plugins {
id 'fabric-loom' version '1.1-SNAPSHOT'
}

archivesBaseName = 'PlaytimeUtils'
archivesBaseName = 'LPPronouns'

repositories {
maven { url 'https://maven.fabricmc.net/' }
Expand Down
@@ -1,8 +1,11 @@
package ca.sperrer.p0t4t0sandwich.lppronouns.fabric;

import ca.sperrer.p0t4t0sandwich.lppronouns.common.LPPronouns;
import ca.sperrer.p0t4t0sandwich.lppronouns.fabric.commands.PronounsCommand;
import ca.sperrer.p0t4t0sandwich.lppronouns.fabric.listeners.FabricEventListener;
import net.fabricmc.api.DedicatedServerModInitializer;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -31,14 +34,12 @@ public void onInitializeServer() {

logger.info("[LPPronouns]: LPPronouns is running on " + getServerType() + ".");

// Start LPPronouns
LPPronouns = new LPPronouns("config", logger);
LPPronouns.start();

// Register event listeners
ServerLifecycleEvents.SERVER_STARTED.register(new FabricEventListener());
ServerPlayConnectionEvents.JOIN.register(new FabricEventListener());

// Register commands
CommandRegistrationCallback.EVENT.register(PronounsCommand::register);

// Mod enable message
logger.info("[LPPronouns]: LPPronouns has been enabled!");
Expand Down
@@ -0,0 +1,49 @@
package ca.sperrer.p0t4t0sandwich.lppronouns.fabric.commands;

import ca.sperrer.p0t4t0sandwich.lppronouns.fabric.FabricMain;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.StringArgumentType;
import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.entity.Entity;
import net.minecraft.server.command.CommandManager.RegistrationEnvironment;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text;

import static ca.sperrer.p0t4t0sandwich.lppronouns.common.Utils.ansiiParser;
import static ca.sperrer.p0t4t0sandwich.lppronouns.common.Utils.runTaskAsync;
import static ca.sperrer.p0t4t0sandwich.lppronouns.fabric.FabricUtils.mapPlayer;
import static net.minecraft.server.command.CommandManager.argument;
import static net.minecraft.server.command.CommandManager.literal;


public final class PronounsCommand {
private static final FabricMain mod = FabricMain.getInstance();

public static void register(CommandDispatcher<ServerCommandSource> dispatcher, CommandRegistryAccess registryAccess, RegistrationEnvironment environment) {
dispatcher.register(literal("pronouns")
.requires(source -> source.hasPermissionLevel(0))
.then(argument("pronouns", StringArgumentType.greedyString())
.executes(context -> {
runTaskAsync(() -> {
try {
String[] args = new String[] {context.getArgument("pronouns", String.class)};

// Send message to player or console
Entity entity = context.getSource().getEntity();
if (entity instanceof ServerPlayerEntity) {
String text = mod.LPPronouns.commandHandler(mapPlayer((ServerPlayerEntity) entity), args);
entity.sendMessage(Text.literal(text));
} else {
mod.logger.info(ansiiParser("§cYou must be a player to use this command."));
}
} catch (Exception e) {
System.err.println(e);
e.printStackTrace();
}
});
return 1;
})
));
}
}
@@ -1,6 +1,8 @@
package ca.sperrer.p0t4t0sandwich.lppronouns.fabric.listeners;

import ca.sperrer.p0t4t0sandwich.lppronouns.common.LPPronouns;
import ca.sperrer.p0t4t0sandwich.lppronouns.fabric.FabricMain;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.networking.v1.PacketSender;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.minecraft.server.MinecraftServer;
Expand All @@ -9,16 +11,29 @@
import static ca.sperrer.p0t4t0sandwich.lppronouns.common.Utils.runTaskAsync;
import static ca.sperrer.p0t4t0sandwich.lppronouns.fabric.FabricUtils.mapPlayer;

public class FabricEventListener implements ServerPlayConnectionEvents.Join {
public class FabricEventListener implements ServerPlayConnectionEvents.Join, ServerLifecycleEvents.ServerStarted {
FabricMain mod = FabricMain.getInstance();

@Override
public void onServerStarted(MinecraftServer server) {
try {
// Start LPPronouns
mod.LPPronouns = new LPPronouns("config", mod.logger);
mod.LPPronouns.start();
} catch (Exception e) {
System.err.println(e);
e.printStackTrace();
}
}

@Override
public void onPlayReady(ServerPlayNetworkHandler handler, PacketSender sender, MinecraftServer server) {
runTaskAsync(() -> {
try {
mod.LPPronouns.pronounsData.refreshPronouns(mapPlayer(handler.getPlayer()));
} catch (Exception e) {
System.out.println(e.getMessage());
System.err.println(e);
e.printStackTrace();
}
});
}
Expand Down
3 changes: 2 additions & 1 deletion fabric/src/main/resources/fabric.mod.json
Expand Up @@ -22,6 +22,7 @@
"depends": {
"fabricloader": ">=${loader_version}",
"fabric": "*",
"minecraft": "${minecraft_version}"
"minecraft": "${minecraft_version}",
"luckperms": "*"
}
}
@@ -1,6 +1,7 @@
package ca.sperrer.p0t4t0sandwich.lppronouns.forge;

import ca.sperrer.p0t4t0sandwich.lppronouns.common.LPPronouns;
import ca.sperrer.p0t4t0sandwich.lppronouns.forge.commands.PronounsCommand;
import ca.sperrer.p0t4t0sandwich.lppronouns.forge.listeners.ForgeEventListener;
import com.mojang.logging.LogUtils;
import net.minecraftforge.common.MinecraftForge;
Expand Down Expand Up @@ -32,14 +33,11 @@ public ForgeMain() {

logger.info("[LPPronouns]: LPPronouns is running on " + getServerType() + ".");

// Start LPPronouns
LPPronouns = new LPPronouns("config", logger);
LPPronouns.start();

// Register event listener
MinecraftForge.EVENT_BUS.register(new ForgeEventListener());

// Register commands
MinecraftForge.EVENT_BUS.register(PronounsCommand.class);

// Mod enable message
logger.info("[LPPronouns]: LPPronouns has been enabled!");
Expand Down
@@ -0,0 +1,48 @@
package ca.sperrer.p0t4t0sandwich.lppronouns.forge.commands;

import ca.sperrer.p0t4t0sandwich.lppronouns.forge.ForgeMain;
import com.mojang.brigadier.arguments.StringArgumentType;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.Entity;
import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;

import static ca.sperrer.p0t4t0sandwich.lppronouns.common.Utils.ansiiParser;
import static ca.sperrer.p0t4t0sandwich.lppronouns.common.Utils.runTaskAsync;
import static ca.sperrer.p0t4t0sandwich.lppronouns.forge.ForgeUtils.mapPlayer;
import static net.minecraft.commands.Commands.argument;
import static net.minecraft.commands.Commands.literal;


public final class PronounsCommand {
private static final ForgeMain mod = ForgeMain.getInstance();

@SubscribeEvent
public static void registerCommand(RegisterCommandsEvent event) {
event.getDispatcher().register(literal("pronouns")
.requires(source -> source.hasPermission(0))
.then(argument("pronouns", StringArgumentType.greedyString())
.executes(context -> {
runTaskAsync(() -> {
try {
String[] args = new String[] {context.getArgument("pronouns", String.class)};

// Send message to player or console
Entity entity = context.getSource().getEntity();
if (entity instanceof ServerPlayer) {
String text = mod.LPPronouns.commandHandler(mapPlayer((ServerPlayer) entity), args);
((ServerPlayer) entity).displayClientMessage(Component.empty().append(text), false);
} else {
mod.logger.info(ansiiParser("§cYou must be a player to use this command."));
}
} catch (Exception e) {
System.err.println(e);
e.printStackTrace();
}
});
return 1;
})
));
}
}
Expand Up @@ -3,6 +3,7 @@
import ca.sperrer.p0t4t0sandwich.lppronouns.forge.ForgeMain;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.server.ServerStartingEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;

import static ca.sperrer.p0t4t0sandwich.lppronouns.common.Utils.runTaskAsync;
Expand All @@ -11,13 +12,26 @@
public class ForgeEventListener {
ForgeMain mod = ForgeMain.getInstance();

@SubscribeEvent
public void onServerStart(ServerStartingEvent event) {
try {
// Start LPPronouns
mod.LPPronouns = new ca.sperrer.p0t4t0sandwich.lppronouns.common.LPPronouns("config", mod.logger);
mod.LPPronouns.start();
} catch (Exception e) {
System.err.println(e);
// e.printStackTrace();
}
}

@SubscribeEvent
public void onPlayerConnect(PlayerEvent.PlayerLoggedInEvent event) {
runTaskAsync(() -> {
try {
mod.LPPronouns.pronounsData.refreshPronouns(mapPlayer((ServerPlayer) event.getEntity()));
} catch (Exception e) {
System.out.println(e.getMessage());
System.err.println(e);
// e.printStackTrace();
}
});
}
Expand Down
7 changes: 7 additions & 0 deletions forge/src/main/resources/META-INF/mods.toml
Expand Up @@ -64,3 +64,10 @@ mandatory = true
versionRange = "[1.19.2,1.20)"
ordering = "NONE"
side = "BOTH"
# LuckPerms dependency
[[dependencies.lppronouns]]
modId = "luckperms"
mandatory = true
versionRange = "[5.3.0,)"
ordering = "AFTER"
side = "SERVER"
4 changes: 2 additions & 2 deletions gradle.properties
Expand Up @@ -8,9 +8,9 @@ yarn_mappings=1.19.4+build.2
loader_version=0.14.19

# Mod Properties
mod_version = 1.0.0
mod_version = 1.0.1
maven_group = ca.sperrer.p0t4t0sandwich
archives_base_name = LuckPermsPronouns
archives_base_name = LPPronouns

# Dependencies
# check this on https://modmuss50.me/fabric.html
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle
Expand Up @@ -10,7 +10,7 @@ pluginManagement {
}
}

rootProject.name = 'LuckPermsPronouns'
rootProject.name = 'LPPronouns'

include(
'bukkit',
Expand Down
5 changes: 3 additions & 2 deletions sketch_build.sh
@@ -1,8 +1,9 @@
#!/bin/bash

VERSION=1.0.0
VERSION=1.0.1
MC_VERSION=1.19.4
PROJ_NAME=lppronouns
OUT_FILE=LPPronouns-$VERSION-$MC_VERSION.jar

# Make directories
rm -rf ./temp_build
Expand Down Expand Up @@ -68,4 +69,4 @@ cd ./$PROJ_NAME
zip -r ./$PROJ_NAME.zip ./*

# Rename Jar
mv ./$PROJ_NAME.zip ../../build/libs/LPPronouns-$VERSION-$MC_VERSION.jar
mv ./$PROJ_NAME.zip ../../build/libs/$OUT_FILE
Expand Up @@ -13,7 +13,7 @@
@Plugin(
id = "lppronouns",
name = "LPPronouns",
version = "1.0.0"
version = "1.0.1"
)
public class VelocityMain {
public LPPronouns LPPronouns;
Expand Down Expand Up @@ -52,7 +52,7 @@ public void onProxyInitialization(ProxyInitializeEvent event) {
this.logger.info("LPPronouns is running on " + getServerType() + ".");

// Start LPPronouns
LPPronouns = new LPPronouns("plugins", this.logger);
LPPronouns = new LPPronouns("plugins", getLogger());
LPPronouns.start();

// Register event listener
Expand Down

0 comments on commit 15a11d2

Please sign in to comment.