From ccdfb40d711a500d62e9e6a93789e82606086188 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Sat, 1 Apr 2023 14:16:39 +0200 Subject: [PATCH] Add AI --- .../src/SchematicSystem.properties | 7 ++- .../SchematicCommandInitializer.java | 1 + .../schematiccommand/parts/AprilPart.java | 61 +++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/schematiccommand/parts/AprilPart.java diff --git a/SchematicSystem_Core/src/SchematicSystem.properties b/SchematicSystem_Core/src/SchematicSystem.properties index 60acc26..0e6d368 100644 --- a/SchematicSystem_Core/src/SchematicSystem.properties +++ b/SchematicSystem_Core/src/SchematicSystem.properties @@ -259,4 +259,9 @@ AUTO_CHECKER_RESULT_RECORD=§7Record: §c[{0}, {1}, {2}] AUTO_CHECKER_RESULT_TOO_MANY_DISPENSER_ITEMS=§7Dispenser: §c[{0}, {1}, {2}]§7, §c{3} §7items, Max: §e{4} AUTO_CHECKER_RESULT_FORBIDDEN_ITEM_NBT=§7Forbidden Item NBT: [{0}, {1}, {2}] -> §c{3} AUTO_CHECKER_RESULT_TELEPORT_HERE=§7Teleport to block -AUTO_CHECKER_RESULT_AFTER_DEADLINE=§cThe deadline has expired: {0} \ No newline at end of file +AUTO_CHECKER_RESULT_AFTER_DEADLINE=§cThe deadline has expired: {0} + +AI_START=§7The AI is synthesizing a "§e{}§7"... Please wait. +AI_FINISH=§7The AI has finished synthesizing. It can be found in your Clipboard. +AI_ERROR=§cAn error occurred while synthesizing the schematic. Please try again later or look at the current date. +AI_NO_STEAMIES=§cYou have no Steamies. Please buy some Steamies in the shop. \ No newline at end of file diff --git a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/schematiccommand/SchematicCommandInitializer.java b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/schematiccommand/SchematicCommandInitializer.java index 7245ead..2bc28af 100644 --- a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/schematiccommand/SchematicCommandInitializer.java +++ b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/schematiccommand/SchematicCommandInitializer.java @@ -32,5 +32,6 @@ public class SchematicCommandInitializer { new SavePart().setMessage(SchematicSystem.MESSAGE); new SearchPart().setMessage(SchematicSystem.MESSAGE); new ViewPart().setMessage(SchematicSystem.MESSAGE); + new AprilPart().setMessage(SchematicSystem.MESSAGE); } } diff --git a/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/schematiccommand/parts/AprilPart.java b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/schematiccommand/parts/AprilPart.java new file mode 100644 index 0000000..04d72f9 --- /dev/null +++ b/SchematicSystem_Core/src/de/steamwar/schematicsystem/commands/schematiccommand/parts/AprilPart.java @@ -0,0 +1,61 @@ +/* + This file is a part of the SteamWar software. + + Copyright (C) 2023 SteamWar.de-Serverteam + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ + +package de.steamwar.schematicsystem.commands.schematiccommand.parts; + +import de.steamwar.command.AbstractSWCommand; +import de.steamwar.command.SWCommand; +import de.steamwar.schematicsystem.SchematicSystem; +import de.steamwar.schematicsystem.commands.schematiccommand.SchematicCommand; +import de.steamwar.sql.SchematicData; +import de.steamwar.sql.SchematicNode; +import de.steamwar.sql.SteamwarUser; +import lombok.SneakyThrows; +import org.bukkit.entity.Player; + +import java.util.List; +import java.util.Random; + +@AbstractSWCommand.PartOf(SchematicCommand.class) +public class AprilPart extends SWCommand { + private static final Random random = new Random(); + + public AprilPart() { + super(null); + } + + @SneakyThrows + @Register("prompt") + public void prompt(Player player, String... prompt) { + SteamwarUser user = SteamwarUser.get(player.getName()); + String message = String.join(" ", prompt); + SchematicSystem.MESSAGE.send("AI_START", player, message); + Thread.sleep(random.nextInt(3000)); + int randomInt = random.nextInt(100); + if (randomInt < 33) { + List nodes = SchematicNode.getAll(user); + new SchematicData(nodes.get(random.nextInt(nodes.size()))).loadToPlayer(player); + SchematicSystem.MESSAGE.send("AI_FINISH", player); + } else if (randomInt < 66) { + SchematicSystem.MESSAGE.send("AI_NO_STEAMIES", player); + } else { + SchematicSystem.MESSAGE.send("AI_ERROR", player); + } + } +}