/fireworks
Minecraft コマンド ラインでコマンドを実行すると花火が表示されるコマンドを作成しています。このサーバー コマンドをクライアント側に接続して、ゲーム内で花火を表示するために、特に何かする必要がありますか? コマンドでを使用してworld.makefireworks(x,y,z,motionX,motionY,motionZ,compound)
います。前もって感謝します。
1 に答える
1
まずコマンドを作成します。これは私のコマンドの 1 つです (必要に応じて変更できるいくつかの便利な実装に簡略化されています。
適切なイベントバスに登録する必要があります
/*@EventHandler
public void stop(FMLServerStoppingEvent event) {
WhoTookMyCookies.mainThread.interrupt();
}*/
@EventHandler
public void start(FMLServerStartingEvent event) {
startDatabase();
WhoTookMyCookies.log.warn("Setting up commands");
event.registerServerCommand(new InspectCommand());
}
そして、コマンド自体
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import akka.actor.FSM.Event;
import tschallacka.whotookmycookies.WhoTookMyCookies;
import tschallacka.whotookmycookies.player.ExtendedPlayer;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.event.ClickEvent;
import net.minecraft.event.HoverEvent;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.FMLCommonHandler;
public class InspectCommand implements ICommand
{
private final List aliases;
protected String fullEntityName;
protected Entity conjuredEntity;
public InspectCommand()
{
aliases = new ArrayList();
aliases.add("whotookmycookies");
aliases.add("wtmc");
aliases.add("co");
}
@Override
public int compareTo(Object o)
{
return 0;
}
@Override
public String getName()
{
return "whotookmycookies";
}
@Override
public String getCommandUsage(ICommandSender var1)
{
return "whotookmycookies <text>";
}
@Override
public boolean isUsernameIndex(String[] var1, int var2)
{
return true;
}
@Override
public List getAliases() {
return this.aliases;
}
@Override
public void execute(ICommandSender sender, String[] args)
throws CommandException {
World world = sender.getEntityWorld();
if (world.isRemote)
{
}
else
{
if(args.length == 0)
{
sender.addChatMessage(new ChatComponentText("WHO TOOK MY COOKIES! Seriously though. type an argument. type /wtmc help to see available commands"));
return;
}
if(sender instanceof EntityPlayer) {
ExtendedPlayer thedude = ExtendedPlayer.get((EntityPlayer) sender);
if(thedude != null) {
if(args[0].equalsIgnoreCase("help")) {
handleHelpCommand(sender,args);
} }
}
}
// TODO Auto-generated method stub
}
private void handleHelpCommand(ICommandSender sender, String[] args) {
String argument = "default";
if(args.length >= 2) {
argument = args[1];
}
ChatComponentText messageTitle,messageSecond;
argument = argument.toLowerCase().trim();
messageTitle = new ChatComponentText("===================//=========\\\\===================");
messageTitle.getChatStyle().setColor(EnumChatFormatting.DARK_AQUA);
sender.addChatMessage(messageTitle);
switch(argument) {
case "help" :
messageTitle = new ChatComponentText("I NEED HELP WITH MY HELP");
messageTitle.getChatStyle().setColor(EnumChatFormatting.GOLD);
messageSecond = new ChatComponentText(" Srsly halp me!");
messageSecond.getChatStyle().setColor(EnumChatFormatting.GRAY).setItalic(Boolean.valueOf(true));
messageTitle.appendSibling(messageSecond);
sender.addChatMessage(messageTitle);
messageTitle = new ChatComponentText("/wtmc help");
messageTitle.getChatStyle().setColor(EnumChatFormatting.GOLD);
messageSecond = new ChatComponentText(" shows the help file listing all the commands of this blocklogging mod");
messageSecond.getChatStyle().setColor(EnumChatFormatting.WHITE);
messageTitle.appendSibling(messageSecond);
sender.addChatMessage(messageTitle);
messageTitle = new ChatComponentText("/wtmc help help");
messageTitle.getChatStyle().setColor(EnumChatFormatting.GOLD);
messageSecond = new ChatComponentText(" Explains to you that the help command shows the help... really... it does.");
messageSecond.getChatStyle().setColor(EnumChatFormatting.WHITE);
messageTitle.appendSibling(messageSecond);
sender.addChatMessage(messageTitle);
break;
}
}
@Override
public boolean canCommandSenderUse(ICommandSender sender) {
if(sender.getCommandSenderEntity() instanceof EntityPlayer) {
return FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().canSendCommands(((EntityPlayer)(sender.getCommandSenderEntity())).getGameProfile());
}
if(sender.getCommandSenderEntity() instanceof EntityPlayerMP) {
return FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().canSendCommands(((EntityPlayer)(sender.getCommandSenderEntity())).getGameProfile());
}
return false;
}
@Override
public List addTabCompletionOptions(ICommandSender sender, String[] args,
BlockPos pos) {
// TODO Auto-generated method stub
return null;
}
}
于 2016-02-08T10:18:39.370 に答える