高校生でもプログラミングがしたい

学生プログラマーの趣味

【Next.js】ESLint must be installedの対処法

問題

npx create-next-appをした時にESLint must be installed: yarn add --dev eslintとエラーが出た。

対処法

eslintのバージョンを7にダウングレードする必要があるので、

  • npmを使用している場合
    npm install eslint@7を実行
  • yarnをを使用している場合
    yarn upgrade eslint@7.32.0を実行

考察

npx create-next-appを実行した際に、eslint@latestがインストールされる。
最近(2021/10/17)eslintのバージョンが8にアップグレードされたのに対し、next.jsがまだ対応できていないようである。

【Apex Legends】エラーで起動しないときの対処方法

Apexを入れようとしたら起動するときに「ゲームの設定に問題があります。ゲームを再インストールしてください。」とエラーがでて起動しないため、対処方法を探したら無事ゲームが起動できたためやり方をメモしておく。 ちなみにググるとSteam版のApexならエラーがでないらしいが、Originで起動したかったためそちらは試していない。

やり方

Apexがインストールされているフォルダーを開く。
(デスクトップのApexのアイコンを右クリックして、「ファイルの場所を開く」をクリックすると開く)
「__Installer」「directx」「redist」の順にフォルダを開く。
「DXSETUP.exe」を起動して案内通りにすすめる。
これでApexが起動できるようになります!

余談

多分だけどApexをインストールする際にDirectXのインストールがうまくいってないみたい。
手動でインストールすることで解決。

プラグインをpluginsフォルダーに自動コピー

MinecraftのSpigotプラグインを開発していると、どうしてもコードを修正したあとのリロードまで時間がかかりますよね。私は修正からその確認作業までが5秒ほどに縮まりました。
プラグインの開発効率を上げていきましょう!

mavenとは

mavenがわかる方は飛ばしてください。

Maven は Project Object Model (POM) という考え方に基づき、プロジェクトのビルド、テスト、ドキュメンテーション、成果物の配備など、プロジェクトのライフサイクル全体を管理します。プロジェクトのビルドツールである Ant とは異なり、Maven はプロジェクト管理ツールとして、プロジェクトに関する色々な情報を POM に集約し、POM の情報に基づきプロジェクト全体を管理します。

難しく考えすぎず、Javaでの開発の手助けを行うものだと思って構いません。pom.ymlに仕様を書くことで必要なライブラリなどを導入してくれます。
今回はmavenについては詳しく説明しません。

antrunプラグインを使ってpackage実行時にファイルをコピーします

pom.xml

次のように記入してください。

<build>
    <plugins>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <copy
                                file="<出力されるjarファイルのパス>"
                                tofile="<サーバーのpluginフォルダ内のファイルのパス>" />
                        </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<出力されるjarファイルのパス>の例としては、D:/Spigot Debug/workspace/debug/target/debug-0.0.1-SNAPSHOT.jarなどです。
<出力されるjarファイルのパス>の例としては、D:/Servers/Spigot Debug/plugins/debug-0.0.1-SNAPSHOT.jar
などです。ディレクトリのパスではなく、ファイルのパスを指定してください。

【Spigot】スマートなgetPlugin

コード

とりあえずコードだけ最初に書いておきます
(importは省略)

public class MyPlugin extends JavaPlugin {

    public static Plugin getPlugin() {
        return JavaPlugin.getPlugin(MyPlugin.class);
    }

}

解説

googlespigot getpluginとかぐぐると下記のようなコードが大量にでてくると思います

public class MyPlugin extends JavaPlugin {

    private static Plugin plugin = null;

    public static Plugin getPlugin() {
        return plugin;
    }

    @Override
    public void onEnable() {
        plugin = this;
    }

}

この方法でPluginのインスタンスは取得できますが、あまり望ましくないので使わないようにしましょう