Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ java {
}

group = 'me.playbosswar.com'
version = '8.16.4'
version = '8.16.5'
description = 'CommandTimer'

repositories {
Expand Down Expand Up @@ -84,7 +84,7 @@ publishing {
maven(MavenPublication) {
groupId = 'me.playbosswar.com'
artifactId = 'commandtimer'
version = '8.16.4'
version = '8.16.5'

from components.java
}
Expand Down
2 changes: 1 addition & 1 deletion docs/.nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20.13.1
20.18.1
3 changes: 2 additions & 1 deletion docs/docs/extensions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,11 @@ player. Here is a list of supported types:
- Double
- Integer
- String
- World
- ConditionCompare

All these types are the native Java types, except `ConditionCompare`, which is used to define a comparison between 2
values. This could be EQUAL, LESS_THEN, BIGGER_OR_EQUAL_THEN,... The different choices are available on the class
values. This could be `EQUAL`, `LESS_THAN`, `GREATER_OR_EQUAL_THAN`,... The different choices are available on the class
itself. A good example of this is
available [here](https://github.com/titivermeesch/CommandTimer_PlayerConditions/blob/master/src/main/java/me/playbosswar/cmtplayerconditions/conditions/PlayerTimeInWorldCondition.java)

Expand Down
2 changes: 2 additions & 0 deletions docs/docs/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ Clicking the paper will create a fresh task for you.
| `/cmt execute <task>` | Instantly execute the specified task | `commandtimer.execute` |
| `/cmt schedule` | Schedule a one-time [ad-hoc command](configuration/adhoc-commands) | `commandtimer.schedule` |
| `/cmt reload` | Reload the plugin. Extensions will not be reloaded. **It is not recommended to use this command** | `commandtimer.manage` |
| `/cmt migrateToDatabase` | Migrate JSON task files to database storage. Requires database to be enabled in config | `commandtimer.manage` |
| `/cmt rollback <version>`| Rollback database/configuration to a specific version. Requires server restart after completion | `commandtimer.manage` |

## Configuration file

Expand Down
12 changes: 7 additions & 5 deletions docs/docs/jsonschema.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,13 @@ following this JSON schema

## Command

| Field | Description | Type |
|------------|------------------------------------------------------------------------------------------------|------------------------------------------|
| `command` | Command to execute. Do not include `/` in front of the command | `string` |
| `gender` | Gender of the command | [Gender](configuration/commands#genders) |
| `interval` | Defined the iteration interval between each command when the execution iterates over all users | [Interval](#interval) |
| Field | Description | Type |
|---------------|------------------------------------------------------------------------------------------------|------------------------------------------|
| `command` | Command to execute. Do not include `/` in front of the command | `string` |
| `gender` | Gender of the command | [Gender](configuration/commands#genders) |
| `interval` | Defined the iteration interval between each command when the execution iterates over all users | [Interval](#interval) |
| `delay` | Individual command delay used with the `ORDERED` [execution mode](configuration/commands#execution-modes) | [Interval](#interval) |
| `description` | Optional description or notes for the command | `string` |

## Interval

Expand Down
69 changes: 69 additions & 0 deletions docs/src/components/HomepageFeatures.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import React from 'react';
import clsx from 'clsx';
import Link from '@docusaurus/Link';
import styles from './HomepageFeatures.module.css';

const FeatureList = [
{
title: 'Schedule Commands',
icon: '\u23F0',
description: 'Set up commands to run on intervals, at specific times of day, or on specific dates. Full control over when and how your commands execute.',
link: '/docs/configuration/commands',
},
{
title: 'Powerful Conditions',
icon: '\u2699\uFE0F',
description: 'Execute commands only when specific conditions are met. Filter by player count, time of day, weather, permissions, and more.',
link: '/docs/configuration/conditions',
},
{
title: 'Task Management',
icon: '\uD83D\uDCCB',
description: 'Organize commands into tasks with their own schedules and settings. Manage everything through an intuitive in-game GUI.',
link: '/docs/configuration/commands',
},
{
title: 'Extensible',
icon: '\uD83E\uDDE9',
description: 'Extend functionality with custom extensions. Add new conditions, execution modes, and placeholders to fit your server needs.',
link: '/docs/extensions/',
},
{
title: 'Placeholders',
icon: '\uD83D\uDD04',
description: 'Use dynamic placeholders in your commands. Supports PlaceholderAPI and built-in placeholders for flexible command templates.',
link: '/docs/placeholders',
},
{
title: 'Developer API',
icon: '\uD83D\uDEE0\uFE0F',
description: 'Integrate CommandTimer into your own plugins with a clean API. Available through Maven and Gradle for easy setup.',
link: '/docs/developers/',
},
];

function Feature({ title, icon, description, link }) {
return (
<div className={clsx('col col--4', styles.featureCol)}>
<Link to={link} className={styles.featureCard}>
<div className={styles.featureIcon}>{icon}</div>
<h3 className={styles.featureTitle}>{title}</h3>
<p className={styles.featureDescription}>{description}</p>
</Link>
</div>
);
}

export default function HomepageFeatures() {
return (
<section className={styles.features}>
<div className="container">
<div className={clsx('row', styles.featureRow)}>
{FeatureList.map((props, idx) => (
<Feature key={idx} {...props} />
))}
</div>
</div>
</section>
);
}
58 changes: 58 additions & 0 deletions docs/src/components/HomepageFeatures.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
.features {
padding: 3rem 0;
}

.featureRow {
row-gap: 1.5rem;
}

.featureCol {
padding: 0 0.75rem;
}

.featureCard {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 1.5rem;
border-radius: 12px;
transition: transform 0.2s ease, box-shadow 0.2s ease;
text-decoration: none !important;
color: inherit !important;
height: 100%;
background: var(--ifm-card-background-color, #fff);
border: 1px solid var(--ifm-color-emphasis-200);
}

.featureCard:hover {
transform: translateY(-4px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
text-decoration: none !important;
color: inherit !important;
}

[data-theme='dark'] .featureCard {
background: var(--ifm-card-background-color, #1b1b1d);
}

[data-theme='dark'] .featureCard:hover {
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.featureIcon {
font-size: 2.5rem;
margin-bottom: 0.75rem;
}

.featureTitle {
font-size: 1.2rem;
margin-bottom: 0.5rem;
}

.featureDescription {
font-size: 0.9rem;
color: var(--ifm-color-emphasis-700);
line-height: 1.5;
margin: 0;
}
24 changes: 12 additions & 12 deletions docs/src/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,24 @@
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #EEC74A;
--ifm-color-primary-dark: #29784c;
--ifm-color-primary-darker: #277148;
--ifm-color-primary-darkest: #205d3b;
--ifm-color-primary-light: #33925d;
--ifm-color-primary-lighter: #359962;
--ifm-color-primary-lightest: #3cad6e;
--ifm-color-primary-dark: #ebbf2f;
--ifm-color-primary-darker: #e9ba21;
--ifm-color-primary-darkest: #c49b10;
--ifm-color-primary-light: #f1cf65;
--ifm-color-primary-lighter: #f3d473;
--ifm-color-primary-lightest: #f7e09b;
--ifm-code-font-size: 95%;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}

/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme='dark'] {
--ifm-color-primary: #EEC74A;
--ifm-color-primary-dark: #21af90;
--ifm-color-primary-darker: #1fa588;
--ifm-color-primary-darkest: #1a8870;
--ifm-color-primary-light: #29d5b0;
--ifm-color-primary-lighter: #32d8b4;
--ifm-color-primary-lightest: #4fddbf;
--ifm-color-primary-dark: #ebbf2f;
--ifm-color-primary-darker: #e9ba21;
--ifm-color-primary-darkest: #c49b10;
--ifm-color-primary-light: #f1cf65;
--ifm-color-primary-lighter: #f3d473;
--ifm-color-primary-lightest: #f7e09b;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}
53 changes: 47 additions & 6 deletions docs/src/pages/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,74 @@ import clsx from 'clsx';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import Layout from '@theme/Layout';
import HomepageFeatures from '@site/src/components/HomepageFeatures';

import styles from './index.module.css';

function HomepageHeader() {
const {siteConfig} = useDocusaurusContext();
return (
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<header className={clsx('hero', styles.heroBanner)}>
<div className="container">
<img
src="img/logo.jpg"
alt="CommandTimer Logo"
className={styles.heroLogo}
/>
<h1 className="hero__title">{siteConfig.title}</h1>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link
className="button button--secondary button--lg"
className="button button--primary button--lg"
to="/docs/intro">
🚀 Get Started
Get Started
</Link>
<Link
className="button button--outline button--lg"
to="https://github.com/titivermeesch/CommandTimer">
View on GitHub
</Link>
</div>
</div>
</header>
);
}

function QuickStart() {
return (
<section className={styles.quickStart}>
<div className="container">
<h2 className={styles.sectionTitle}>Quick Start</h2>
<div className={styles.steps}>
<div className={styles.step}>
<div className={styles.stepNumber}>1</div>
<h3>Install the Plugin</h3>
<p>Download CommandTimer and drop it into your server's plugins folder.</p>
</div>
<div className={styles.step}>
<div className={styles.stepNumber}>2</div>
<h3>Create a Task</h3>
<p>Use <code>/cmt</code> to open the GUI and create your first task.</p>
</div>
<div className={styles.step}>
<div className={styles.stepNumber}>3</div>
<h3>Add Commands</h3>
<p>Configure commands, set schedules, and let CommandTimer handle the rest.</p>
</div>
</div>
</div>
</section>
);
}

export default function Home() {
return (
<Layout
description="Schedule commands like you want">
<HomepageHeader/>
<Layout description="Schedule commands like you want">
<HomepageHeader />
<main>
<HomepageFeatures />
<QuickStart />
</main>
</Layout>
);
}
Loading