标签: minecraft

启动外部JAR文件需要什么,比如Minecraft启动程序?

如果你从未玩过Minecraft,那么这就是发射器的机械工作方式.

用户可以下载一个JAR(或者一个打包到EXE中的JAR),它完全没有Minecraft客户端的代码.这被认为是发射器.当启动器启动时,它会显示一个带有新闻等的登录屏幕.然后,登录后,启动器将运行主要的Minecraft核心,minecraft.jar.如果系统上没有,则下载它.Minecraft启动程序不需要任何外部Java库来运行.

它是如何做到的?

我正在尝试复制这个功能,但是,当我在Eclipse中导出为可运行的JAR时,当我尝试启动它时,它会输出"找不到主类launcher.jar.程序将退出"(这是在控制台上) ,我希望能够双击JAR并让它启动)

File file = new File(System.getProperty("user.dir") + "/lessur.jar"); 
System.setProperty("org.lwjgl.librarypath", System.getProperty("user.dir") + "natives");
URLClassLoader classLoader;
classLoader = URLClassLoader.newInstance(new URL[]{file.toURI().toURL()});          
classLoader.loadClass("zombie.engine.Lighting2").newInstance();
Run Code Online (Sandbox Code Playgroud)

java jar external launcher minecraft

5
推荐指数
1
解决办法
6138
查看次数

创建一个需要从3个变量的中间向外循环的检查(xyz)

for (int ix = x - r; ix < x + r + 1; ix++) {
    for (int iz = z - r; iz < z + r + 1; iz++) {
        for (int iy = y - r; iy < y + r + 1; iy++) {
                       // if ix,iy,iz = something blah blah (this part isn't needed)
        }                           
    }
}
Run Code Online (Sandbox Code Playgroud)

好的,现在问题就在这里.上面的当前代码获得x,y,z和r(范围).它的工作是通过"立方体"引用,直到满足我设定的某个条件.问题在于它从立方体的外部开始并且基本上从一个角落进入另一个角落.

我正在寻找一种方式(我的数学/ Java是不是喜欢我大气压)在从POS POS机和环向外开始(包括POS本身),直到它到达立方体的最外面的边界.

因此,如果我们给出了所有假值,让我们使用x = 5,y = 5,z = 5,r = 2代码应检查5,5,5 - 4,5,5 6,5,5 5,6,5 5,4,5等基本上从中心向外迭代每个东西. …

java arrays for-loop minecraft

5
推荐指数
1
解决办法
218
查看次数

Crontab权限被拒绝

我在运行脚本时遇到crontab问题。

我的sudo crontab -e看起来像这样:

05 00 * * * /opt/mcserver/backup.sh
10 00 * * * /opt/mcserver/suspend.sh
05 08 * * * /sbin/shutdown -r +1
11 11 * * * /opt/mcserver/start.sh  <--- This isn't working
Run Code Online (Sandbox Code Playgroud)

并且start.sh看起来像这样:

#!/bin/sh
screen java -d64 -Xincgc -Xmx2048M -jar craftbukkit.jar nogui
Run Code Online (Sandbox Code Playgroud)

并具有这些权限(ls -l输出)

-rwxr-xr-x 1 eve eve  72 Nov 24 14:17 start.sh
Run Code Online (Sandbox Code Playgroud)

我可以使用sudo从终端运行命令

./start.sh
Run Code Online (Sandbox Code Playgroud)

但这不会从crontab开始。如果我做

grep -iR "start.sh" /var/log
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

/var/log/syslog:Nov 27 11:11:01 eve-desk CRON[5204]: (root) CMD (eve /opt/mcserver/start.sh)
grep: /var/log/btmp: Permission denied …
Run Code Online (Sandbox Code Playgroud)

linux permissions ubuntu crontab minecraft

5
推荐指数
0
解决办法
2万
查看次数

PHP中的连接拒绝错误

[06-Nov-2013 17:57:32] PHP警告:socket_connect()[function.socket-connect]:无法连接[111]:/home2/whoop/public_html/phptesting/main.php上的连接被拒绝43

我一直收到这个错误.这是我的main.php中的一段代码

<?php

$host = '76.72.172.166';
$port = 25608;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //Create the socket
$connected = socket_connect($socket, $host, $port);//Try and connect
?>
Run Code Online (Sandbox Code Playgroud)

我正在尝试设置一个Minecraft播放器列表这是我使用 http://forums.bukkit.org/threads/web-constantly-updated-website-widgets.148592/

php sockets port host minecraft

5
推荐指数
1
解决办法
1万
查看次数

Bukkit:我怎么称呼一个活动?

我刚刚开始编写Bukkit编码,我一直在尝试编写一个插件,为某个播放器启用pvp,并且可以禁用它,但仅限于自己.它工作正常,直到我发现我需要一个事件来完成这项工作,但我还没有得知我需要的事件.在网上看了几个视频/东西后,找不到任何可以帮助我的东西.如果你能告诉我如何做到这一点,那就太好了.此外,如果你能解释更多关于事件,也将不胜感激:)

package me.impatheimpaler.test;

import java.util.ArrayList;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class togglepvp extends JavaPlugin implements Listener{

    public void onEnable() {

    }

    public void onDisable() {

    }

    List<String> toggled = new ArrayList<String>();

    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
        if (cmd.getName().equalsIgnoreCase("togglepvp")) {
            if (!(sender instanceof Player)) {
                 sender.sendMessage("Only a Player can run this command.");
                 return false;
            }
            Player player = (Player) sender;
            if (toggled.contains(player.getName())) {
                 player.sendMessage(ChatColor.RED + …
Run Code Online (Sandbox Code Playgroud)

java minecraft bukkit

5
推荐指数
1
解决办法
4899
查看次数

通过.bat在已经打开的CMD中插入命令

我编写了一个网站,我的朋友们可以在该网站上通过PHP启动和关闭其Minecraft服务器。要停止其服务器,.bat文件会终止该进程,但是通常,Minecraft服务器将使用“停止”命令停止。Minecraft服务器在CMD中运行,所以我的问题是:

是否可以将命令从启动的.bat发送到单独的已打开的CMD,以便已打开的CMD停止服务器?

windows cmd batch-file minecraft server

5
推荐指数
1
解决办法
833
查看次数

resultset.getObject上的AbstractMethodError

因此,我正在构建一个minecraft插件,该插件的一部分从mysql抓取一堆数据块,并在服务器启动时将其加载到缓存中。我有一些代码可以在Eclipse测试用例中正常运行。但是,当我在本地的minecraft服务器中加载插件时,出现了异常。

    java.lang.AbstractMethodError:方法com / mysql / jdbc / JDBC4ResultSet.getObject(Ljava / lang / String; Ljava / lang / Class;)Ljava / lang / Object; 是抽象的
            在com.mysql.jdbc.JDBC4ResultSet.getObject(JDBC4ResultSet.java)处〜[spigot-1.8.8.jar:git-Spigot-db6de12-d3e0b6f]
            在fws.plugins.trigger.database.ModelDB.loadCollection(ModelDB.java:335)〜[?:?]
            在fws.plugins.trigger.database.ModelDB.all(ModelDB.java:295)〜[?:?]
等等...



抛出异常的代码。

rs.getObject( field.getName(), p.fieldType());
Run Code Online (Sandbox Code Playgroud)

rsjava.sql.ResultSet从执行查询返回的实例。
p.fieldType()只是返回一个 Class<?>



片段稍大...并不是真的可以向您显示其他内容。

if (field.isAnnotationPresent(Persist.class)) {
    try {
        Persist p = field.getAnnotation(Persist.class);
        Object o = rs.getObject( field.getName(), p.fieldType());
        field.set(m,p.fieldType().cast(o));

    } catch (Exception e) {
        // TODO Auto-generated catch block 
        e.printStackTrace();
    } 
}
Run Code Online (Sandbox Code Playgroud)

我看过网上有人说要修复,我需要包括ojdbc6.jar并将其用作我的连接驱动程序。
我将文件添加到文件夹lib下的项目结构中,将其包含到我的项目中,然后将其添加到我的构建文件中。 http://i.imgur.com/7TXLbjj.png 并将连接驱动程序更改为oracle.jdbc.OracleDriver

但是即时通讯收到相同的问题,似乎不是一个解决办法。虽然有机会我做错了。

谁能帮助我,提供任何见解等?

编辑**
从命令行

$ java -version
java …
Run Code Online (Sandbox Code Playgroud)

java mysql eclipse jdbc minecraft

5
推荐指数
1
解决办法
4184
查看次数

无法从俯仰和偏航中正确计算法线/方向矢量

在此输入图像描述

我的球场和偏航都搞砸了.我有垫子的俯仰和偏航,但是梁的俯仰和偏航都搞砸了.如何计算垫的俯仰和偏航的法向量?我尝试了从stackoverflow的数学垃圾负载,但到目前为止他们都失败了.

我最初尝试的是在垫的间距上加90,但是偏航仍然混乱: 在此输入图像描述

这就是当我习惯于垫的俯仰和偏航以及计算方向向量时会发生的情况: 在此输入图像描述

我接下来尝试做的是将横梁的俯仰和偏航从横梁的俯仰和偏航中分开并将它们分别计算出来.这大部分都有效,但是偏航仍然完全搞砸了.

我用来计算横梁的偏航和俯仰的方向向量是我的工具用来为暴徒做的:

public static Vec3d getVectorForRotation3d(float pitch, float yaw) {
    float f = MathHelper.cos(-yaw * 0.017453292F - (float) Math.PI);
    float f1 = MathHelper.sin(-yaw * 0.017453292F - (float) Math.PI);
    float f2 = -MathHelper.cos(-pitch * 0.017453292F);
    float f3 = MathHelper.sin(-pitch * 0.017453292F);
    return new Vec3d((double) (f1 * f2), (double) f3, (double) (f * f2));
}
Run Code Online (Sandbox Code Playgroud)

但是那显然失败了,所以最后,我尝试了以下使用pad的音调:

    double pitch = ((te.getPadPitch() + 90) * Math.PI) / 180;
    double yaw = ((te.getPadYaw() + 90) * Math.PI) / 180;
    double x = …
Run Code Online (Sandbox Code Playgroud)

java vector minecraft

5
推荐指数
1
解决办法
369
查看次数

如何在Bukkit mod中使用Minecraft的WorldEdit撤销堆栈

我试图在Bukkit mod中更新Minecraft中的块,并能够//undo在Minecraft中进行那些更改.我可以改变块但我无法//undo改变.

我一定错过了一些简单的东西,因为谷歌没有帮我找到解决方案.

这是我的mod.它将当前所选区域中的单个块设置为空中.注释掉的行是我尝试过的对我不起作用的东西.

public class Main extends JavaPlugin implements Listener
{
    // ... //

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) 
    {
        if (command.getName().equalsIgnoreCase("setair")) 
        {           
            org.bukkit.entity.Player bukkitPlayer = (org.bukkit.entity.Player) sender;  

            WorldEditPlugin worldEditPlugin = null;
            worldEditPlugin = (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
            if(worldEditPlugin == null){
                bukkitPlayer.sendMessage("Error: WorldEdit is null.");   
            }
            else
            {               
                com.sk89q.worldedit.bukkit.selections.Selection s = worldEditPlugin.getSelection(bukkitPlayer);
                com.sk89q.worldedit.LocalSession localSession = worldEditPlugin.getSession(bukkitPlayer);
                com.sk89q.worldedit.world.World localWorld = localSession.getSelectionWorld();
                com.sk89q.worldedit.bukkit.BukkitPlayer wrappedPlayer = worldEditPlugin.wrapPlayer(bukkitPlayer);
                com.sk89q.worldedit.LocalPlayer localPlayer = wrappedPlayer;
                //com.sk89q.worldedit.world.World localWorld2 = …
Run Code Online (Sandbox Code Playgroud)

java minecraft bukkit

5
推荐指数
1
解决办法
232
查看次数

Minecraft加载块的速度

我正在研究体素地形生成器。一切都很好,我有生物群落,街区等。

让我感到震惊的是我团结一致的项目速度。如果我在主线程上运行所有程序,则只能加载并渲染1到2个块,而不会降至70fps以下。这主要是因为块中的每个块都必须检查其邻居以定义其块侧可见性。一个块有6个邻居,一个块有16个块。这很快就进行了很多检查。

我读过《我的世界》是单线程的,但我很难相信,因为它的块加载速度非常快并且没有fps下降。

我的解决方案是在另一个线程上运行块的块邻居的检查。这将大大提高我的fps和我的块加载速度。这是正确的方法吗?我不想使用线程,因为我的代码未优化。这就像将灰尘推到地毯下面。

谢谢阅读

编辑:检查邻居的代码

//Block provides its mesh information
//Check for solidity of adjacent blocks
public virtual MeshData CreateBlockData(Chunk chunk, int x, int y, int z, MeshData meshData)
{
    //Set this to true to turn on collider creation shaped like the chunks
    meshData.useRenderDataForCol = true;

    if (!chunk.GetBlock(x, y + 1, z).IsSolid(Direction.down))
    {
        meshData = FaceDataUp(chunk, x, y, z, meshData);
    }

    if (!chunk.GetBlock(x, y - 1, z).IsSolid(Direction.up))
    {
        meshData = FaceDataDown(chunk, x, y, z, meshData);
    }

    if (!chunk.GetBlock(x, y, …
Run Code Online (Sandbox Code Playgroud)

c# multithreading procedural-generation unity-game-engine minecraft

5
推荐指数
1
解决办法
189
查看次数