updated to gradle project framework

This commit is contained in:
Josh Ashton
2023-05-01 14:43:37 -06:00
parent f4fcae1a16
commit c176832473
102 changed files with 654 additions and 201 deletions
+9
View File
@@ -0,0 +1,9 @@
#
# https://help.github.com/articles/dealing-with-line-endings/
#
# Linux start script should use lf
/gradlew text eol=lf
# These are Windows script files and should use crlf
*.bat text eol=crlf
+5
View File
@@ -0,0 +1,5 @@
# Ignore Gradle project-specific cache directory
.gradle
# Ignore Gradle build output directory
build
+28
View File
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>dnd</name>
<comment>Project dnd created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
<filteredResources>
<filter>
<id>1682969422633</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
@@ -0,0 +1,13 @@
arguments=--init-script /Users/jashton/.cache/jdtls/config/org.eclipse.osgi/50/0/.cp/gradle/init/init.gradle
auto.sync=false
build.scans.enabled=false
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
connection.project.dir=
eclipse.preferences.version=1
gradle.user.home=
java.home=/opt/homebrew/Cellar/openjdk/20/libexec/openjdk.jdk/Contents/Home
jvm.arguments=
offline.mode=false
override.workspace.settings=true
show.console.view=true
show.executions.view=true
+32
View File
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="bin/main" path="src/main/java">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/main" path="src/main/resources">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/java">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/resources">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
<classpathentry kind="output" path="bin/default"/>
</classpath>
+34
View File
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>app</name>
<comment>Project app created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
<filteredResources>
<filter>
<id>1682969422631</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
@@ -0,0 +1,2 @@
connection.project.dir=..
eclipse.preferences.version=1
+4
View File
@@ -0,0 +1,4 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.source=17
+45
View File
@@ -0,0 +1,45 @@
/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Java application project to get you started.
* For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
* User Manual available at https://docs.gradle.org/8.1.1/userguide/building_java_projects.html
* This project uses @Incubating APIs which are subject to change.
*/
plugins {
// Apply the application plugin to add support for building a CLI application in Java.
id 'application'
}
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
}
dependencies {
// This dependency is used by the application.
implementation 'com.google.guava:guava:31.1-jre'
}
testing {
suites {
// Configure the built-in test suite
test {
// Use JUnit Jupiter test framework
useJUnitJupiter('5.9.1')
}
}
}
// Apply a specific Java toolchain to ease working on different environments.
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
application {
// Define the main class for the application.
mainClass = 'dnd.App'
}
@@ -1,4 +1,4 @@
package src; package dnd;
public class App { public class App {
@@ -1,4 +1,4 @@
package src; package dnd;
import java.awt.*; import java.awt.*;
@@ -12,11 +12,11 @@ public final class AppConstants {
public static final String mainFilepath = System.getProperty("user.dir"); public static final String mainFilepath = System.getProperty("user.dir");
public static final String imgFilepath = System.getProperty("user.dir") + "/.resources/img/"; public static final String imgFilepath = System.getProperty("user.dir") + "/src/main/resources/img/";
public static final String fontFilepath = System.getProperty("user.dir") + "/.resources/SanSalvi.ttf"; public static final String fontFilepath = System.getProperty("user.dir") + "/src/main/resources/SanSalvi.ttf";
public static final String savesFilepath = System.getProperty("user.dir") + "/.savedSheets/"; public static final String savesFilepath = System.getProperty("user.home") + "/Documents/saves";
@@ -1,4 +1,4 @@
package src; package dnd;
public class Background { public class Background {
@@ -1,11 +1,11 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder; import javax.swing.border.LineBorder;
import java.awt.*; import java.awt.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class BasicNavPanel extends JPanel { public class BasicNavPanel extends JPanel {
@@ -1,10 +1,10 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
import static src.ImageManager.*; import static dnd.ImageManager.*;
public class BasicPanel extends JPanel { public class BasicPanel extends JPanel {
@@ -1,6 +1,7 @@
package src; package dnd;
import java.io.Serializable; import java.io.Serializable;
import dnd.species.*;
public class CharacterSheet implements Serializable { public class CharacterSheet implements Serializable {
private String name; private String name;
@@ -1,4 +1,4 @@
package src; package dnd;
import java.io.Serializable; import java.io.Serializable;
@@ -1,4 +1,4 @@
package src; package dnd;
import java.io.Serializable; import java.io.Serializable;
@@ -1,10 +1,10 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.LineBorder; import javax.swing.border.LineBorder;
import java.awt.*; import java.awt.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class ChooseAbilityScoresPanel extends JPanel { public class ChooseAbilityScoresPanel extends JPanel {
@@ -1,4 +1,4 @@
package src; package dnd;
public interface ClassTemplate { public interface ClassTemplate {
@@ -1,4 +1,4 @@
package src; package dnd;
public class Cleric implements ClassTemplate { public class Cleric implements ClassTemplate {
@@ -1,4 +1,4 @@
package src; package dnd;
import java.io.Serializable; import java.io.Serializable;
@@ -1,11 +1,11 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class DefaultButton extends JButton { public class DefaultButton extends JButton {
@@ -1,10 +1,10 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.*; import javax.swing.border.*;
import java.awt.*; import java.awt.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class DescriptionPanel extends JPanel { public class DescriptionPanel extends JPanel {
@@ -1,4 +1,4 @@
package src; package dnd;
import java.io.Serializable; import java.io.Serializable;
@@ -2,7 +2,7 @@
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Character.Classes/Main.java to edit this template * Click nbfs://nbhost/SystemFileSystem/Templates/Character.Classes/Main.java to edit this template
*/ */
package DieRoller; package dnd.DieRoller;
import javax.swing.*; import javax.swing.*;
import java.util.Arrays; import java.util.Arrays;
@@ -1,4 +1,4 @@
package src; package dnd;
import java.io.Serializable; import java.io.Serializable;
@@ -1,57 +1,41 @@
package src; package dnd;
import java.awt.*; import java.awt.*;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class FileManager { public class FileManager {
private String filepath; private String filepath;
private boolean returningUser; private boolean returningUser;
private ArrayList<File> saveFiles; private ArrayList<File> saveFiles;
private ArrayList<CharacterSheet> saves; private ArrayList<CharacterSheet> saves;
public FileManager() { public FileManager() {
saveFiles = new ArrayList<>(); saveFiles = new ArrayList<>();
setSaveFiles(); setSaveFiles();
loadFont(); loadFont();
} }
public int getNumSaves() { public int getNumSaves() {
return saveFiles.size(); return saveFiles.size();
} }
public boolean isReturningUser() { public boolean isReturningUser() {
return returningUser; return returningUser;
} }
public CharacterSheet readSavedCharacter(int index) { public CharacterSheet readSavedCharacter(int index) {
return readCharacter(saveFiles.get(index)); return readCharacter(saveFiles.get(index));
} }
public void saveCharacter(CharacterSheet completedCharacter) { public void saveCharacter(CharacterSheet completedCharacter) {
writeCharacter(completedCharacter); writeCharacter(completedCharacter);
} }
public ArrayList<CharacterSheet> getSaves() { public ArrayList<CharacterSheet> getSaves() {
return saves; return saves;
} }
// TODO: Need to implement. // TODO: Need to implement.
@@ -60,100 +44,57 @@ public class FileManager {
} }
private void loadFont() { private void loadFont() {
try { try {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File(fontFilepath))); ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File(fontFilepath)));
} catch(IOException | FontFormatException e) { } catch(IOException | FontFormatException e) {
System.out.println("Filepath of font not found: " + fontFilepath + " does not exist."); System.out.println("Filepath of font not found: " + fontFilepath + " does not exist.");
} }
} }
private void setSaveFiles() { private void setSaveFiles() {
File[] tmp = new File(savesFilepath).listFiles(); File[] tmp = new File(savesFilepath).listFiles();
if(tmp != null) { if(tmp != null) {
for(int i = 0; i < tmp.length; i++) { for(int i = 0; i < tmp.length; i++) {
saveFiles.add(tmp[i]); saveFiles.add(tmp[i]);
} }
returningUser = true; returningUser = true;
} else { } else {
returningUser = false; returningUser = false;
} }
saves = new ArrayList<>(); saves = new ArrayList<>();
for(File file : saveFiles) { for(File file : saveFiles) {
saves.add(readCharacter(file)); saves.add(readCharacter(file));
} }
} }
private CharacterSheet readCharacter(File file) { private CharacterSheet readCharacter(File file) {
CharacterSheet sheet = null; CharacterSheet sheet = null;
try { try {
FileInputStream fileIn = new FileInputStream(file.getPath()); FileInputStream fileIn = new FileInputStream(file.getPath());
ObjectInputStream in = new ObjectInputStream(fileIn); ObjectInputStream in = new ObjectInputStream(fileIn);
sheet = (CharacterSheet) in.readObject(); sheet = (CharacterSheet) in.readObject();
in.close(); in.close();
fileIn.close(); fileIn.close();
} catch (IOException | ClassNotFoundException e) { } catch (IOException | ClassNotFoundException e) {
System.out.println("No saved characters were found"); System.out.println("No saved characters were found");
} }
return sheet; return sheet;
} }
private void writeCharacter(CharacterSheet sheet) { private void writeCharacter(CharacterSheet sheet) {
try( try(
FileOutputStream fileOut = new FileOutputStream(savesFilepath + sheet.getName() + ".dnd"); FileOutputStream fileOut = new FileOutputStream(savesFilepath + sheet.getName() + ".dnd");
ObjectOutputStream objOut = new ObjectOutputStream(fileOut); ObjectOutputStream objOut = new ObjectOutputStream(fileOut);
) { ) {
objOut.writeObject(sheet); objOut.writeObject(sheet);
setSaveFiles(); setSaveFiles();
} catch (IOException e) { } catch (IOException e) {
System.out.println("ERROR: "); System.out.println("ERROR: ");
e.printStackTrace(); e.printStackTrace();
System.out.println("\nERROR: Unable to write character sheet object to \n" + filepath + "/.savedSheets"); System.out.println("\nERROR: Unable to write character sheet object to \n" + filepath + "/.savedSheets");
} }
} }
} }
@@ -1,10 +1,11 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.util.*; import java.util.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
import dnd.species.*;
public class GUImanager extends JFrame { public class GUImanager extends JFrame {
@@ -163,7 +164,7 @@ public class GUImanager extends JFrame {
"A Strength check can model any attempt to lift, push, pull, or break something, to force your body through a space, or to otherwise apply brute force to a situation. You add your Strength modifier to your attack roll and your damage roll when attacking with a melee weapon Skills: Athletics", "A Strength check can model any attempt to lift, push, pull, or break something, to force your body through a space, or to otherwise apply brute force to a situation. You add your Strength modifier to your attack roll and your damage roll when attacking with a melee weapon Skills: Athletics",
"A Dexterity check can model any attempt to move nimbly, quickly, or quietly, or to keep from falling on tricky footing. You add your Dexterity modifier to your attack roll and your damage roll when attacking with a ranged weapon, or a melee weapon that has the finesse property. Skills: Acrobatics, Sleight of Hand, Stealth", "A Dexterity check can model any attempt to move nimbly, quickly, or quietly, or to keep from falling on tricky footing. You add your Dexterity modifier to your attack roll and your damage roll when attacking with a ranged weapon, or a melee weapon that has the finesse property. Skills: Acrobatics, Sleight of Hand, Stealth",
"CConstitution checks are uncommon, and no skills apply to Constitution checks, because the endurance this ability represents is largely passive rather than involving a specific effort on the part of a character or monster. A Constitution check can model your attempt to push beyond normal limits, however. Your Constitution modifier contributes to your hit points. Typically, you add your Constitution modifier to each Hit Die you roll for your hit points.", "Constitution checks are uncommon, and no skills apply to Constitution checks, because the endurance this ability represents is largely passive rather than involving a specific effort on the part of a character or monster. A Constitution check can model your attempt to push beyond normal limits, however. Your Constitution modifier contributes to your hit points. Typically, you add your Constitution modifier to each Hit Die you roll for your hit points.",
"An Intelligence check comes into play when you need to draw on logic, education, memory, or deductive reasoning. Skills: Arcana, History, Investigation, Nature, Religion", "An Intelligence check comes into play when you need to draw on logic, education, memory, or deductive reasoning. Skills: Arcana, History, Investigation, Nature, Religion",
"A Wisdom check might reflect an effort to read body language, understand someones feelings, notice things about the environment, or care for an injured person. Skills: Animal Handling, Insight, Medicine, Perception, Survival", "A Wisdom check might reflect an effort to read body language, understand someones feelings, notice things about the environment, or care for an injured person. Skills: Animal Handling, Insight, Medicine, Perception, Survival",
"A Charisma check might arise when you try to influence or entertain others, when you try to make an impression or tell a convincing lie, or when you are navigating a tricky social situation. Skills: Deception, Intimidation, Performance, Persuasion" "A Charisma check might arise when you try to influence or entertain others, when you try to make an impression or tell a convincing lie, or when you are navigating a tricky social situation. Skills: Deception, Intimidation, Performance, Persuasion"
@@ -236,60 +237,41 @@ public class GUImanager extends JFrame {
backgroundDescriptions = new String[]{ backgroundDescriptions = new String[]{
//Acolyte //Acolyte
"You have spent your life in the service of a temple to a specific god or pantheon of gods. You act as an intermediary between the realm of the holy and the mortal world, performing sacred rites and offering sacrifices in order to conduct worshipers into the presence of the divine. You are not necessarily a cleric—performing sacred rites is not the same thing as channeling divine power. Feature: Shelter of the Faithful Proficiencies: Insight, Religion "You have spent your life in the service of a temple to a specific god or pantheon of gods. You act as an intermediary between the realm of the holy and the mortal world, performing sacred rites and offering sacrifices in order to conduct worshipers into the presence of the divine. You are not necessarily a cleric—performing sacred rites is not the same thing as channeling divine power. Feature: Shelter of the Faithful Proficiencies: Insight, Religion",
",
//Charlatan //Charlatan
"You have always had a way with people. You know what makes them tick, you can tease out their hearts desires after a few minutes of conversation, and with a few leading questions you can read them like they were childrens books. Its a useful talent, and one that youre perfectly willing to use for your advantage. Feature: False Identity Proficiencies: Deception, Sleight of Hand "You have always had a way with people. You know what makes them tick, you can tease out their hearts desires after a few minutes of conversation, and with a few leading questions you can read them like they were childrens books. Its a useful talent, and one that youre perfectly willing to use for your advantage. Feature: False Identity Proficiencies: Deception, Sleight of Hand",
",
//Criminal //Criminal
"You are an experienced criminal with a history of breaking the law. You have spent a lot of time among other criminals and still have contacts within the criminal underworld. Youre far closer than most people to the world of murder, theft, and violence that pervades the underbelly of civilization, and you have survived up to this point by flouting the rules and regulations of society. Feature: Criminal Contact Proficiencies: Deception, Stealth "You are an experienced criminal with a history of breaking the law. You have spent a lot of time among other criminals and still have contacts within the criminal underworld. Youre far closer than most people to the world of murder, theft, and violence that pervades the underbelly of civilization, and you have survived up to this point by flouting the rules and regulations of society. Feature: Criminal Contact Proficiencies: Deception, Stealth",
",
//Entertainer //Entertainer
"You thrive in front of an audience. You know how to entrance them, entertain them, and even inspire them. Your poetics can stir the hearts of those who hear you, awakening grief or joy, laughter or anger. Your music raises their spirits or captures their sorrow. Your dance steps captivate, your humor cuts to the quick. Whatever techniques you use, your art is your life. Feature: By Popular Demand Proficiencies: Acrobatics, Performance "You thrive in front of an audience. You know how to entrance them, entertain them, and even inspire them. Your poetics can stir the hearts of those who hear you, awakening grief or joy, laughter or anger. Your music raises their spirits or captures their sorrow. Your dance steps captivate, your humor cuts to the quick. Whatever techniques you use, your art is your life. Feature: By Popular Demand Proficiencies: Acrobatics, Performance",
",
//Folk Hero //Folk Hero
"You come from a humble social rank, but you are destined for so much more. Already the people of your home village regard you as their champion, and your destiny calls you to stand against the tyrants and monsters that threaten the common folk everywhere. Feature: Rustic Hospitality Proficiencies: Animal Handling, Survival "You come from a humble social rank, but you are destined for so much more. Already the people of your home village regard you as their champion, and your destiny calls you to stand against the tyrants and monsters that threaten the common folk everywhere. Feature: Rustic Hospitality Proficiencies: Animal Handling, Survival",
",
//Gladiator //Gladiator
"A gladiator is as much an entertainer as any minstrel or circus performer, trained to make the arts of combat into a spectacle the crowd can enjoy. This kind of flashy combat is your entertainer routine, though you might also have some skills as a tumbler or actor. Feature: By Popular Demand Proficiencies: Acrobatics, Performance "A gladiator is as much an entertainer as any minstrel or circus performer, trained to make the arts of combat into a spectacle the crowd can enjoy. This kind of flashy combat is your entertainer routine, though you might also have some skills as a tumbler or actor. Feature: By Popular Demand Proficiencies: Acrobatics, Performance",
",
//Guild Artisan //Guild Artisan
"You are a member of an artisans guild, skilled in a particular field and closely associated with other artisans. You are a well-established part of the mercantile world, freed by talent and wealth from the constraints of a feudal social order. You learned your skills as an apprentice to a master artisan, under the sponsorship of your guild, until you became a master in your own right. Feature: Guild Membership Proficiencies: Insight, Persuasion "You are a member of an artisans guild, skilled in a particular field and closely associated with other artisans. You are a well-established part of the mercantile world, freed by talent and wealth from the constraints of a feudal social order. You learned your skills as an apprentice to a master artisan, under the sponsorship of your guild, until you became a master in your own right. Feature: Guild Membership Proficiencies: Insight, Persuasion",
",
//Guild Merchant //Guild Merchant
"Instead of an artisans guild, you might belong to a guild of traders, caravan masters, or shopkeepers. You dont craft items yourself but earn a living by buying and selling the works of others (or the raw materials artisans need to practice their craft). Your guild might be a large merchant consortium (or family) with interests across the region. Perhaps you transported goods from one place to another, by ship, wagon, or caravan, or bought them from traveling traders and sold them in your own little shop. In some ways, the traveling merchants life lends itself to adventure far more than the life of an artisan. Feature: Guild Membership Proficiencies: Insight, Persuasion "Instead of an artisans guild, you might belong to a guild of traders, caravan masters, or shopkeepers. You dont craft items yourself but earn a living by buying and selling the works of others (or the raw materials artisans need to practice their craft). Your guild might be a large merchant consortium (or family) with interests across the region. Perhaps you transported goods from one place to another, by ship, wagon, or caravan, or bought them from traveling traders and sold them in your own little shop. In some ways, the traveling merchants life lends itself to adventure far more than the life of an artisan. Feature: Guild Membership Proficiencies: Insight, Persuasion",
",
//Hermit //Hermit
"You lived in seclusion — either in a sheltered community such as a monastery, or entirely alone — for a formative part of your life. In your time apart from the clamor of society, you found quiet, solitude, and perhaps some of the answers you were looking for. Feature: Discovery Proficiencies: Medicine, Religion "You lived in seclusion — either in a sheltered community such as a monastery, or entirely alone — for a formative part of your life. In your time apart from the clamor of society, you found quiet, solitude, and perhaps some of the answers you were looking for. Feature: Discovery Proficiencies: Medicine, Religion",
",
//Knight //Knight
"A knighthood is among the lowest noble titles in most societies, but it can be a path to higher status. One of your commoner retainers is a noble who serves as your squire, aiding you in exchange for training on his or her own path to knighthood. Your two remaining retainers might include a groom to care for your horse and a servant who polishes your armor (and even helps you put it on). Feature: Retainers Proficiencies: History, Persuasion "A knighthood is among the lowest noble titles in most societies, but it can be a path to higher status. One of your commoner retainers is a noble who serves as your squire, aiding you in exchange for training on his or her own path to knighthood. Your two remaining retainers might include a groom to care for your horse and a servant who polishes your armor (and even helps you put it on). Feature: Retainers Proficiencies: History, Persuasion",
",
//Noble //Noble
"You understand wealth, power, and privilege. You carry a noble title, and your family owns land, collects taxes, and wields significant political influence. You might be a pampered aristocrat unfamiliar with work or discomfort, a former merchant just elevated to the nobility, or a disinherited scoundrel with a disproportionate sense of entitlement. Or you could be an honest, hard-working landowner who cares deeply about the people who live and work on your land, keenly aware of your responsibility to them. Feature: Position of Privilege Proficiencies: History, Persuasion "You understand wealth, power, and privilege. You carry a noble title, and your family owns land, collects taxes, and wields significant political influence. You might be a pampered aristocrat unfamiliar with work or discomfort, a former merchant just elevated to the nobility, or a disinherited scoundrel with a disproportionate sense of entitlement. Or you could be an honest, hard-working landowner who cares deeply about the people who live and work on your land, keenly aware of your responsibility to them. Feature: Position of Privilege Proficiencies: History, Persuasion",
",
//Outlander //Outlander
"You grew up in the wilds, far from civilization and the comforts of town and technology. Youve witnessed the migration of herds larger than forests, survived weather more extreme than any city-dweller could comprehend, and enjoyed the solitude of being the only thinking creature for miles in any direction. The wilds are in your blood, whether you were a nomad, an explorer, a recluse, a hunter-gatherer, or even a marauder. Even in places where you dont know the specific features of the terrain, you know the ways of the wild. Feature: Wanderer Proficiencies: Athletics, Survival "You grew up in the wilds, far from civilization and the comforts of town and technology. Youve witnessed the migration of herds larger than forests, survived weather more extreme than any city-dweller could comprehend, and enjoyed the solitude of being the only thinking creature for miles in any direction. The wilds are in your blood, whether you were a nomad, an explorer, a recluse, a hunter-gatherer, or even a marauder. Even in places where you dont know the specific features of the terrain, you know the ways of the wild. Feature: Wanderer Proficiencies: Athletics, Survival",
",
//Pirate //Pirate
"You spent your youth under the sway of a dread pirate, a ruthless cutthroat who taught you how to survive in a world of sharks and lawlessness. Youve indulged in larceny on the high seas and sent more than one deserving soul to a briny grave. Fear and bloodshed are no strangers to you, and youve garnered a somewhat unsavory reputation in many a port town. Feature: Bad Reputation Proficiencies: Athletics, Perception "You spent your youth under the sway of a dread pirate, a ruthless cutthroat who taught you how to survive in a world of sharks and lawlessness. Youve indulged in larceny on the high seas and sent more than one deserving soul to a briny grave. Fear and bloodshed are no strangers to you, and youve garnered a somewhat unsavory reputation in many a port town. Feature: Bad Reputation Proficiencies: Athletics, Perception",
",
//Sage //Sage
"You spent years learning the lore of the multiverse. You scoured manuscripts, studied scrolls, and listened to the greatest experts on the subjects that interest you. Your efforts have made you a master in your fields of study. Feature: Researcher Proficiencies: Arcana, History "You spent years learning the lore of the multiverse. You scoured manuscripts, studied scrolls, and listened to the greatest experts on the subjects that interest you. Your efforts have made you a master in your fields of study. Feature: Researcher Proficiencies: Arcana, History",
",
//Sailer //Sailer
"You sailed on a seagoing vessel for years. In that time, you faced down mighty storms, monsters of the deep, and those who wanted to sink your craft to the bottomless depths. Your first love is the distant line of the horizon, but the time has come to try your hand at something new. Feature: Ship's Passage Proficiencies: Athletics, Perception "You sailed on a seagoing vessel for years. In that time, you faced down mighty storms, monsters of the deep, and those who wanted to sink your craft to the bottomless depths. Your first love is the distant line of the horizon, but the time has come to try your hand at something new. Feature: Ship's Passage Proficiencies: Athletics, Perception",
",
//Soldier //Soldier
"War has been your life for as long as you care to remember. You trained as a youth, studied the use of weapons and armor, learned basic survival techniques, including how to stay alive on the battlefield. You might have been part of a standing national army or a mercenary company, or perhaps a member of a local militia who rose to prominence during a recent war. Feature: Military Rank Proficiencies: Athletics, Intimidation "War has been your life for as long as you care to remember. You trained as a youth, studied the use of weapons and armor, learned basic survival techniques, including how to stay alive on the battlefield. You might have been part of a standing national army or a mercenary company, or perhaps a member of a local militia who rose to prominence during a recent war. Feature: Military Rank Proficiencies: Athletics, Intimidation",
",
//Spy //Spy
"Although your capabilities are not much different from those of a burglar or smuggler, you learned and practiced them in a very different context: as an espionage agent. You might have been an officially sanctioned agent of the crown, or perhaps you sold the secrets you uncovered to the highest bidder. Feature: Criminal Contact Proficiencies: Deception, Stealth "Although your capabilities are not much different from those of a burglar or smuggler, you learned and practiced them in a very different context: as an espionage agent. You might have been an officially sanctioned agent of the crown, or perhaps you sold the secrets you uncovered to the highest bidder. Feature: Criminal Contact Proficiencies: Deception, Stealth",
",
//Urchin //Urchin
"You grew up on the streets alone, orphaned, and poor. You had no one to watch over you or to provide for you, so you learned to provide for yourself. You fought fiercely over food and kept a constant watch out for other desperate souls who might steal from you. You slept on rooftops and in alleyways, exposed to the elements, and endured sickness without the advantage of medicine or a place to recuperate. Youve survived despite all odds, and did so through cunning, strength, speed, or some combination of each. Feature: City Secrets Proficiencies: Sleight of Hand, Stealth "You grew up on the streets alone, orphaned, and poor. You had no one to watch over you or to provide for you, so you learned to provide for yourself. You fought fiercely over food and kept a constant watch out for other desperate souls who might steal from you. You slept on rooftops and in alleyways, exposed to the elements, and endured sickness without the advantage of medicine or a place to recuperate. Youve survived despite all odds, and did so through cunning, strength, speed, or some combination of each. Feature: City Secrets Proficiencies: Sleight of Hand, Stealth"
"
}; };
} }
@@ -490,6 +472,8 @@ public class GUImanager extends JFrame {
private DefaultButton createLoadNCharacterButton(int index) { private DefaultButton createLoadNCharacterButton(int index) {
if(index < 0) return new DefaultButton("INDEX OUT OF BOUNDS");
DefaultButton button = new DefaultButton(saves.get(index).getName()); DefaultButton button = new DefaultButton(saves.get(index).getName());
button.addActionListener( button.addActionListener(
@@ -1,4 +1,4 @@
package src; package dnd;
import javax.imageio.*; import javax.imageio.*;
import javax.swing.*; import javax.swing.*;
@@ -7,16 +7,14 @@ import java.awt.image.*;
import java.io.*; import java.io.*;
import java.util.*; import java.util.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class ImageManager extends FileManager { public class ImageManager extends FileManager {
private static JLabel[][] racePortraits; private static JLabel[][] racePortraits;
private static JLabel[][] classPortraits; private static JLabel[][] classPortraits;
private static ArrayList<JLabel> savesPortraits; private static ArrayList<JLabel> savesPortraits;
public ImageManager() { public ImageManager() {
super(); super();
racePortraits = new JLabel[9][]; racePortraits = new JLabel[9][];
classPortraits = new JLabel[12][]; classPortraits = new JLabel[12][];
@@ -29,88 +27,62 @@ public class ImageManager extends FileManager {
} }
public JLabel getRacePortrait(int raceIndex) { public JLabel getRacePortrait(int raceIndex) {
if(raceIndex < 1) return new JLabel();
return racePortraits[raceIndex][new Random().nextInt(racePortraits[raceIndex].length)]; return racePortraits[raceIndex][new Random().nextInt(racePortraits[raceIndex].length)];
} }
public JLabel getClassPortrait(int classIndex) { public JLabel getClassPortrait(int classIndex) {
if(classIndex < 1) return new JLabel();
return classPortraits[classIndex][new Random().nextInt(classPortraits[classIndex].length)]; return classPortraits[classIndex][new Random().nextInt(classPortraits[classIndex].length)];
} }
private void createSavesPortraits() { private void createSavesPortraits() {
File[] dir = new File(imgFilepath + "/saves/").listFiles(); File[] dir = new File(imgFilepath + "/saves/").listFiles();
for(File file : dir) { for(File file : dir) {
JLabel holder = image(file); JLabel holder = image(file);
holder.setOpaque(true); holder.setOpaque(true);
holder.setBackground(lightBrown); holder.setBackground(lightBrown);
savesPortraits.add(holder); savesPortraits.add(holder);
} }
} }
private void createPortraitArray(JLabel[][] portraits, String category) { private void createPortraitArray(JLabel[][] portraits, String category) {
File imgDir = new File(imgFilepath + category + "/"); File imgDir = new File(imgFilepath + category + "/");
File[] masterDir = imgDir.listFiles(); File[] masterDir = imgDir.listFiles();
for(int i = 0; i < portraits.length; i++) { for(int i = 0; i < portraits.length; i++) {
File[] tmpDir = masterDir[i].listFiles(); File[] tmpDir = masterDir[i].listFiles();
portraits[i] = new JLabel[tmpDir.length]; portraits[i] = new JLabel[tmpDir.length];
int index = 0; int index = 0;
for(File file : tmpDir) { for(File file : tmpDir) {
portraits[i][index] = image(file); portraits[i][index] = image(file);
portraits[i][index].setOpaque(true); portraits[i][index].setOpaque(true);
portraits[i][index].setBackground(lightBrown); portraits[i][index].setBackground(lightBrown);
//portraits[i][index].setBounds(bounds[3]); //portraits[i][index].setBounds(bounds[3]);
index++; index++;
} }
} }
} }
private JLabel image(File file) { private JLabel image(File file) {
BufferedImage img; BufferedImage img;
Image finalImg; Image finalImg;
JLabel picture; JLabel picture;
try { try {
img = ImageIO.read(file); img = ImageIO.read(file);
finalImg = img.getScaledInstance(250, 375, Image.SCALE_SMOOTH); finalImg = img.getScaledInstance(250, 375, Image.SCALE_SMOOTH);
} catch (IOException e) { } catch (IOException e) {
System.out.println("File " + file.getPath() + " does not exist."); System.out.println("File " + file.getPath() + " does not exist.");
img = null; img = null;
finalImg = null; finalImg = null;
picture = null; picture = null;
return null; return null;
} }
picture = new JLabel(new ImageIcon(finalImg)); picture = new JLabel(new ImageIcon(finalImg));
return picture; return picture;
} }
} }
@@ -1,10 +1,10 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import java.awt.*; import java.awt.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class InfoPanel extends JPanel { public class InfoPanel extends JPanel {
@@ -1,4 +1,4 @@
package src; package dnd;
import java.io.Serializable; import java.io.Serializable;
@@ -1,4 +1,4 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
@@ -1,10 +1,10 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.util.*; import java.util.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class LoadCharacterPanel extends JPanel { public class LoadCharacterPanel extends JPanel {
@@ -1,4 +1,4 @@
package src; package dnd;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.BevelBorder; import javax.swing.border.BevelBorder;
@@ -7,7 +7,7 @@ import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class MainMenuPanel extends JPanel { public class MainMenuPanel extends JPanel {
@@ -1,4 +1,4 @@
package src; package dnd;
/** /**
* Object stores information about a character's skills arrays. Firstly, the name of each skill, and secondly the value of each skill. When constructed, a private method is called * Object stores information about a character's skills arrays. Firstly, the name of each skill, and secondly the value of each skill. When constructed, a private method is called
@@ -1,4 +1,4 @@
package src; package dnd;
public abstract class Stats { public abstract class Stats {
@@ -1,4 +1,4 @@
package src; package dnd;
import java.io.Serializable; import java.io.Serializable;
@@ -1,5 +1,6 @@
package src; package dnd;
import dnd.species.*;
public class Tester { public class Tester {
public static void main(String[] args) { public static void main(String[] args) {
@@ -1,9 +1,9 @@
package src; package dnd;
import java.awt.*; import java.awt.*;
import javax.swing.*; import javax.swing.*;
import static src.AppConstants.*; import static dnd.AppConstants.*;
public class ViewCharacterPanel extends JPanel { public class ViewCharacterPanel extends JPanel {
@@ -1,4 +1,4 @@
package src; package dnd;
import java.io.Serializable; import java.io.Serializable;
@@ -1,4 +1,4 @@
package src; package dnd;
public class Wizard implements ClassTemplate { public class Wizard implements ClassTemplate {
@@ -1,3 +1,5 @@
package dnd.deprecated;
import javax.swing.border.Border; import javax.swing.border.Border;
import java.awt.*; import java.awt.*;
@@ -1,4 +1,4 @@
package src; package dnd.species;
public class Dragonborn implements Race { public class Dragonborn implements Race {
private final int speed = 30; private final int speed = 30;
@@ -1,4 +1,4 @@
package src; package dnd.species;
public class Dwarf implements Race { public class Dwarf implements Race {
private final int speed = 25; private final int speed = 25;
@@ -1,4 +1,4 @@
package src; package dnd.species;
import java.io.Serializable; import java.io.Serializable;
@@ -1,4 +1,4 @@
package src; package dnd.species;
public class Gnome implements Race { public class Gnome implements Race {
private final int speed = 25; private final int speed = 25;
@@ -1,4 +1,4 @@
package src; package dnd.species;
public class HalfElf implements Race { public class HalfElf implements Race {
private final int speed = 30; private final int speed = 30;
@@ -1,4 +1,4 @@
package src; package dnd.species;
public class HalfOrc implements Race { public class HalfOrc implements Race {
private final int speed = 30; private final int speed = 30;
@@ -1,4 +1,4 @@
package src; package dnd.species;
public class Halfling implements Race { public class Halfling implements Race {
private final int speed = 30; private final int speed = 30;
@@ -1,4 +1,4 @@
package src; package dnd.species;
public class Human implements Race { public class Human implements Race {
@@ -1,4 +1,4 @@
package src; package dnd.species;
public interface Race { public interface Race {
@@ -1,4 +1,4 @@
package src; package dnd.species;
public class Tiefling implements Race { public class Tiefling implements Race {
private final int speed = 30; private final int speed = 30;
Binary file not shown.
@@ -0,0 +1,14 @@
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package dndcharacterbuilder;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class AppTest {
@Test void appHasAGreeting() {
App classUnderTest = new App();
assertNotNull(classUnderTest.getGreeting(), "app should have a greeting");
}
}
+6
View File
@@ -0,0 +1,6 @@
# This file was generated by the Gradle 'init' task.
# https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties
org.gradle.parallel=true
org.gradle.caching=true
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Vendored Executable
+245
View File
@@ -0,0 +1,245 @@
#!/bin/sh
#
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
warn () {
echo "$*"
} >&2
die () {
echo
echo "$*"
echo
exit 1
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
Vendored
+92
View File
@@ -0,0 +1,92 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
+17
View File
@@ -0,0 +1,17 @@
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
*
* Detailed information about configuring a multi-project build in Gradle can be found
* in the user manual at https://docs.gradle.org/8.1.1/userguide/multi_project_builds.html
* This project uses @Incubating APIs which are subject to change.
*/
plugins {
// Apply the foojay-resolver plugin to allow automatic download of JDKs
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.4.0'
}
rootProject.name = 'dnd'
include('app')
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More