Add latest revisions after getting it functional

This commit is contained in:
zontreck 2024-10-31 17:18:14 -07:00
parent 9653e273e4
commit ffcecb8e8e
1443 changed files with 258988 additions and 6046 deletions

View file

@ -0,0 +1,71 @@
package com.zontreck.commands.teleport;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.StringArgumentType;
import com.zontreck.Messages;
import com.zontreck.events.CommandExecutionEvent;
import com.zontreck.libzontreck.util.ChatHelpers;
import com.zontreck.util.TeleportActioner;
import com.zontreck.util.TeleportContainer;
import com.zontreck.util.TeleportRegistry;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.common.MinecraftForge;
import java.util.Iterator;
import java.util.UUID;
public class TPAcceptCommand {
public static void register(CommandDispatcher<CommandSourceStack> dispatcher)
{
dispatcher.register(Commands.literal("tpaccept").then(Commands.argument("TeleportUUID", StringArgumentType.string()).executes(c->doAccept(c.getSource(), StringArgumentType.getString(c, "TeleportUUID")))));
}
private static int doAccept(CommandSourceStack source, String TPID) {
var exec = new CommandExecutionEvent(source.getPlayer(), "tpaccept");
if(MinecraftForge.EVENT_BUS.post(exec))
{
return 0;
}
UUID teleporter = UUID.fromString(TPID);
ServerPlayer play = (ServerPlayer)source.getEntity();
Iterator<TeleportContainer> it = TeleportRegistry.get().iterator();
while(it.hasNext())
{
TeleportContainer cont = it.next();
if(cont.TeleportID.equals(teleporter)){
// Accepting!
ServerPlayer from = source.getServer().getPlayerList().getPlayer(cont.FromPlayer);
ServerPlayer to = source.getServer().getPlayerList().getPlayer(cont.ToPlayer);
Component comp = ChatHelpers.macro(Messages.TELEPORT_REQUEST_ACCEPTED);
ChatHelpers.broadcastTo(cont.FromPlayer, comp, source.getServer());
ChatHelpers.broadcastTo(cont.ToPlayer, comp, source.getServer());
it.remove();
cont.PlayerInst = from;
cont.Position = to.position();
cont.Rotation = to.getRotationVector();
cont.Dimension = to.getLevel();
TeleportActioner.ApplyTeleportEffect(from);
TeleportActioner.PerformTeleport(cont, false);
return 0;
}
}
Component comp = ChatHelpers.macro(Messages.TELEPORT_REQUEST_NOT_FOUND);
ChatHelpers.broadcastTo(play.getUUID(), comp, source.getServer());
return 0;
}
}