Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
3.4 kB · 90 lines
C++
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990#include "stdafx.h"#include "MinecraftServer.h"#include "PlayerList.h"#include "ServerPlayer.h"#include "PlayerConnection.h"#include "..\Minecraft.World\net.minecraft.commands.h"#include "..\Minecraft.World\net.minecraft.network.packet.h"#include "..\Minecraft.World\net.minecraft.world.level.h"#include "..\Minecraft.World\net.minecraft.world.level.dimension.h"#include "TeleportCommand.h"
EGameCommand TeleportCommand::getId(){ return eGameCommand_Teleport;}
void TeleportCommand::execute(shared_ptr<CommandSender> source, byteArray commandData){ ByteArrayInputStream bais(commandData); DataInputStream dis(&bais);
PlayerUID subjectID = dis.readPlayerUID(); PlayerUID destinationID = dis.readPlayerUID(); bais.reset();
PlayerList *players = MinecraftServer::getInstance()->getPlayerList();
shared_ptr<ServerPlayer> subject = players->getPlayer(subjectID); shared_ptr<ServerPlayer> destination = players->getPlayer(destinationID);
if(subject != NULL && destination != NULL && subject->level->dimension->id == destination->level->dimension->id && subject->isAlive() ) { subject->ride(nullptr); subject->connection->teleport(destination->x, destination->y, destination->z, destination->yRot, destination->xRot); //logAdminAction(source, "commands.tp.success", subject->getAName(), destination->getAName()); logAdminAction(source, ChatPacket::e_ChatCommandTeleportSuccess, subject->getName(), eTYPE_SERVERPLAYER, destination->getName());
if(subject == source) { destination->sendMessage(subject->getName(), ChatPacket::e_ChatCommandTeleportToMe); } else { subject->sendMessage(destination->getName(), ChatPacket::e_ChatCommandTeleportMe); } }
//if (args.length >= 1) { // MinecraftServer server = MinecraftServer.getInstance(); // ServerPlayer victim;
// if (args.length == 2 || args.length == 4) { // victim = server.getPlayers().getPlayer(args[0]); // if (victim == null) throw new PlayerNotFoundException(); // } else { // victim = (ServerPlayer) convertSourceToPlayer(source); // }
// if (args.length == 3 || args.length == 4) { // if (victim.level != null) { // int pos = args.length - 3; // int maxPos = Level.MAX_LEVEL_SIZE; // int x = convertArgToInt(source, args[pos++], -maxPos, maxPos); // int y = convertArgToInt(source, args[pos++], Level.minBuildHeight, Level.maxBuildHeight); // int z = convertArgToInt(source, args[pos++], -maxPos, maxPos);
// victim.teleportTo(x + 0.5f, y, z + 0.5f); // logAdminAction(source, "commands.tp.coordinates", victim.getAName(), x, y, z); // } // } else if (args.length == 1 || args.length == 2) { // ServerPlayer destination = server.getPlayers().getPlayer(args[args.length - 1]); // if (destination == null) throw new PlayerNotFoundException();
// victim.connection.teleport(destination.x, destination.y, destination.z, destination.yRot, destination.xRot); // logAdminAction(source, "commands.tp.success", victim.getAName(), destination.getAName()); // } //}}
shared_ptr<GameCommandPacket> TeleportCommand::preparePacket(PlayerUID subject, PlayerUID destination){ ByteArrayOutputStream baos; DataOutputStream dos(&baos);
dos.writePlayerUID(subject); dos.writePlayerUID(destination);
return shared_ptr<GameCommandPacket>( new GameCommandPacket(eGameCommand_Teleport, baos.toByteArray() ));}