Create a new event and add a few fields to existing events
This commit is contained in:
parent
957b65ebb3
commit
ede19b0572
8 changed files with 61 additions and 11 deletions
|
@ -5,5 +5,5 @@ org.gradle.daemon=false
|
||||||
|
|
||||||
mc_version=1.18.2
|
mc_version=1.18.2
|
||||||
forge_version=40.2.1
|
forge_version=40.2.1
|
||||||
myversion=1.0.5.0305231526
|
myversion=1.0.5.0305231539
|
||||||
parchment_version=2022.11.06
|
parchment_version=2022.11.06
|
||||||
|
|
|
@ -4,6 +4,7 @@ import dev.zontreck.libzontreck.LibZontreck;
|
||||||
import dev.zontreck.libzontreck.memory.PlayerContainer;
|
import dev.zontreck.libzontreck.memory.PlayerContainer;
|
||||||
import dev.zontreck.libzontreck.profiles.Profile;
|
import dev.zontreck.libzontreck.profiles.Profile;
|
||||||
import dev.zontreck.libzontreck.profiles.UserProfileNotYetExistsException;
|
import dev.zontreck.libzontreck.profiles.UserProfileNotYetExistsException;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
|
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
|
||||||
|
@ -41,8 +42,9 @@ public class ForgeEventHandlers {
|
||||||
|
|
||||||
ServerPlayer player = (ServerPlayer)ev.getPlayer();
|
ServerPlayer player = (ServerPlayer)ev.getPlayer();
|
||||||
Profile prof = Profile.factory(player);
|
Profile prof = Profile.factory(player);
|
||||||
|
ServerLevel level = player.getLevel();
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.post(new ProfileLoadedEvent(prof));
|
MinecraftForge.EVENT_BUS.post(new ProfileLoadedEvent(prof, player, level));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
|
|
|
@ -1,13 +1,19 @@
|
||||||
package dev.zontreck.libzontreck.events;
|
package dev.zontreck.libzontreck.events;
|
||||||
|
|
||||||
import dev.zontreck.libzontreck.profiles.Profile;
|
import dev.zontreck.libzontreck.profiles.Profile;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraftforge.eventbus.api.Event;
|
import net.minecraftforge.eventbus.api.Event;
|
||||||
|
|
||||||
public class ProfileLoadedEvent extends Event
|
public class ProfileLoadedEvent extends Event
|
||||||
{
|
{
|
||||||
public Profile profile;
|
public Profile profile;
|
||||||
public ProfileLoadedEvent(Profile prof)
|
public ServerPlayer player;
|
||||||
|
public ServerLevel level;
|
||||||
|
public ProfileLoadedEvent(Profile prof, ServerPlayer player, ServerLevel level)
|
||||||
{
|
{
|
||||||
profile=prof;
|
profile=prof;
|
||||||
|
this.player=player;
|
||||||
|
this.level=level;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package dev.zontreck.libzontreck.events;
|
package dev.zontreck.libzontreck.events;
|
||||||
|
|
||||||
|
import dev.zontreck.libzontreck.profiles.Profile;
|
||||||
import net.minecraftforge.eventbus.api.Event;
|
import net.minecraftforge.eventbus.api.Event;
|
||||||
|
|
||||||
public class ProfileUnloadedEvent extends Event
|
public class ProfileUnloadedEvent extends Event
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
package dev.zontreck.libzontreck.events;
|
||||||
|
|
||||||
|
import dev.zontreck.libzontreck.profiles.Profile;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import net.minecraftforge.eventbus.api.Cancelable;
|
||||||
|
import net.minecraftforge.eventbus.api.Event;
|
||||||
|
|
||||||
|
@Cancelable
|
||||||
|
public class ProfileUnloadingEvent extends Event
|
||||||
|
{
|
||||||
|
public Profile profile;
|
||||||
|
public ServerPlayer player;
|
||||||
|
|
||||||
|
public ProfileUnloadingEvent(Profile profile, ServerPlayer player)
|
||||||
|
{
|
||||||
|
this.profile=profile;
|
||||||
|
this.player=player;
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,7 +10,9 @@ import dev.zontreck.libzontreck.LibZontreck;
|
||||||
import dev.zontreck.libzontreck.chat.ChatColor;
|
import dev.zontreck.libzontreck.chat.ChatColor;
|
||||||
import dev.zontreck.libzontreck.events.ProfileCreatedEvent;
|
import dev.zontreck.libzontreck.events.ProfileCreatedEvent;
|
||||||
import dev.zontreck.libzontreck.events.ProfileUnloadedEvent;
|
import dev.zontreck.libzontreck.events.ProfileUnloadedEvent;
|
||||||
|
import dev.zontreck.libzontreck.events.ProfileUnloadingEvent;
|
||||||
import dev.zontreck.libzontreck.util.FileTreeDatastore;
|
import dev.zontreck.libzontreck.util.FileTreeDatastore;
|
||||||
|
import dev.zontreck.libzontreck.util.ServerUtilities;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtIo;
|
import net.minecraft.nbt.NbtIo;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
@ -26,6 +28,8 @@ public class Profile {
|
||||||
public String chat_color;
|
public String chat_color;
|
||||||
public Boolean flying;
|
public Boolean flying;
|
||||||
public int available_vaults;
|
public int available_vaults;
|
||||||
|
public int deaths;
|
||||||
|
public ServerPlayer player;
|
||||||
|
|
||||||
private File accessor;
|
private File accessor;
|
||||||
|
|
||||||
|
@ -44,7 +48,7 @@ public class Profile {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Profile(String username, String prefix, String nickname, String name_color, String ID, String prefix_color, String chat_color, Boolean isFlying, int vaults, File vaultFile) {
|
public Profile(String username, String prefix, String nickname, String name_color, String ID, String prefix_color, String chat_color, Boolean isFlying, int vaults, File vaultFile, int deathCount, ServerPlayer player) {
|
||||||
this.username = username;
|
this.username = username;
|
||||||
this.prefix = prefix;
|
this.prefix = prefix;
|
||||||
this.nickname = nickname;
|
this.nickname = nickname;
|
||||||
|
@ -54,6 +58,8 @@ public class Profile {
|
||||||
this.chat_color = chat_color;
|
this.chat_color = chat_color;
|
||||||
this.flying=isFlying;
|
this.flying=isFlying;
|
||||||
this.available_vaults=vaults;
|
this.available_vaults=vaults;
|
||||||
|
this.deaths=deathCount;
|
||||||
|
this.player=player;
|
||||||
|
|
||||||
|
|
||||||
this.accessor = vaultFile;
|
this.accessor = vaultFile;
|
||||||
|
@ -72,7 +78,7 @@ public class Profile {
|
||||||
// Load profile data
|
// Load profile data
|
||||||
File ace = userProfile.resolve("profile.nbt").toFile();
|
File ace = userProfile.resolve("profile.nbt").toFile();
|
||||||
try {
|
try {
|
||||||
Profile actual = load(NbtIo.read(ace), ace);
|
Profile actual = load(NbtIo.read(ace), ace, ServerUtilities.getPlayerByID(UUID));
|
||||||
LibZontreck.PROFILES.put(UUID, actual);
|
LibZontreck.PROFILES.put(UUID, actual);
|
||||||
return actual;
|
return actual;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -94,9 +100,9 @@ public class Profile {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Profile load(CompoundTag tag, File accessor)
|
private static Profile load(CompoundTag tag, File accessor, ServerPlayer player)
|
||||||
{
|
{
|
||||||
return new Profile(tag.getString("user"), tag.getString("prefix"), tag.getString("nick"), tag.getString("nickc"), tag.getString("id"), tag.getString("prefixc"), tag.getString("chatc"), tag.getBoolean("flying"), tag.getInt("vaults"), accessor);
|
return new Profile(tag.getString("user"), tag.getString("prefix"), tag.getString("nick"), tag.getString("nickc"), tag.getString("id"), tag.getString("prefixc"), tag.getString("chatc"), tag.getBoolean("flying"), tag.getInt("vaults"), accessor, tag.getInt("deaths"), player);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void generateNewProfile(ServerPlayer player)
|
private static void generateNewProfile(ServerPlayer player)
|
||||||
|
@ -107,7 +113,7 @@ public class Profile {
|
||||||
{
|
{
|
||||||
// Load profile data
|
// Load profile data
|
||||||
File ace = userProfile.resolve("profile.nbt").toFile();
|
File ace = userProfile.resolve("profile.nbt").toFile();
|
||||||
Profile template = new Profile(player.getName().getString(), "Member", player.getDisplayName().getString(), ChatColor.GREEN, player.getStringUUID(), ChatColor.AQUA, ChatColor.WHITE, false, 0, ace);
|
Profile template = new Profile(player.getName().getString(), "Member", player.getDisplayName().getString(), ChatColor.GREEN, player.getStringUUID(), ChatColor.AQUA, ChatColor.WHITE, false, 0, ace, 0, player);
|
||||||
template.commit();
|
template.commit();
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,6 +135,10 @@ public class Profile {
|
||||||
@Override
|
@Override
|
||||||
public void finalize()
|
public void finalize()
|
||||||
{
|
{
|
||||||
|
if(MinecraftForge.EVENT_BUS.post(new ProfileUnloadingEvent(this, player)))
|
||||||
|
{
|
||||||
|
commit();
|
||||||
|
}
|
||||||
LibZontreck.LOGGER.info("Profile is unloaded for "+username);
|
LibZontreck.LOGGER.info("Profile is unloaded for "+username);
|
||||||
MinecraftForge.EVENT_BUS.post(new ProfileUnloadedEvent(user_id));
|
MinecraftForge.EVENT_BUS.post(new ProfileUnloadedEvent(user_id));
|
||||||
}
|
}
|
||||||
|
@ -162,6 +172,7 @@ public class Profile {
|
||||||
serial.putString("chatc", chat_color);
|
serial.putString("chatc", chat_color);
|
||||||
serial.putBoolean("flying", flying);
|
serial.putBoolean("flying", flying);
|
||||||
serial.putInt("vaults", available_vaults);
|
serial.putInt("vaults", available_vaults);
|
||||||
|
serial.putInt("deaths", deaths);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,6 @@ import net.minecraft.network.chat.TextComponent;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
|
||||||
import net.minecraftforge.network.NetworkHooks;
|
|
||||||
|
|
||||||
public class ChatHelpers {
|
public class ChatHelpers {
|
||||||
public static void broadcastActionBar(Component message, MinecraftServer server)
|
public static void broadcastActionBar(Component message, MinecraftServer server)
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
package dev.zontreck.libzontreck.util;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import dev.zontreck.libzontreck.LibZontreck;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
|
||||||
|
public class ServerUtilities
|
||||||
|
{
|
||||||
|
public static ServerPlayer getPlayerByID(String id)
|
||||||
|
{
|
||||||
|
return LibZontreck.THE_SERVER.getPlayerList().getPlayer(UUID.fromString(id));
|
||||||
|
}
|
||||||
|
}
|
Reference in a new issue