Skip to content

Commit

Permalink
Release v1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Kamilkime committed Jun 2, 2021
1 parent e695506 commit 6e9c48b
Show file tree
Hide file tree
Showing 32 changed files with 2,074 additions and 0 deletions.
137 changes: 137 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
# Created by https://www.toptal.com/developers/gitignore/api/java,gradle,intellij+all
# Edit at https://www.toptal.com/developers/gitignore?templates=java,gradle,intellij+all

### Intellij+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### Intellij+all Patch ###
# Ignores the whole .idea folder and all .iml files
# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360

.idea/

# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023

*.iml
modules.xml
.idea/misc.xml
*.ipr

# Sonarlint plugin
.idea/sonarlint

### Java ###
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

### Gradle ###
.gradle
build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache

# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
# gradle/wrapper/gradle-wrapper.properties

### Gradle Patch ###
**/build/

# End of https://www.toptal.com/developers/gitignore/api/java,gradle,intellij+all
75 changes: 75 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# StoneChat
Podstawowe zarządzanie chatem w jednej komendzie. Bezpłatna i w pełni otwartoźródłowa alternatywa dla płatnych pluginów jak BMChatPremium

----------------------------------------------------
### :desktop_computer: Instalacja
Plugin przeznaczony jest dla wersji MC od 1.8 do 1.16.5. Działa z dowolnym silnikiem opartym o BukkitAPI — CraftBukkit, Spigot, Paper, Tuinity itp. Najnowszy .jar z pluginem można zawsze znaleźć [tu](https://github.com/Kamilkime/StoneChat/releases).

----------------------------------------------------
### :gear: Konfiguracja pluginu
W pliku config.yml znajdują się ustawienia przechowywania danych i czasu autozapisu. Dostępne są dwa sposoby przechowywania danych: **MySQL** i **SQLite**.

Zapis SQLite jest zalecany, ponieważ jest w pełni lokalny — nie wymaga posiadania dedykowanej bazy czy instalacji żadnego dodatkowego oprogramowania. W jego konfiguracji należy podać jedynie plik, w którym przechowywana będzie baza — najlepiej zostawić to ustawione domyślnie.

Zapis MySQL zalecany jest dla osób, które posiadają już bazę MySQL lub podobną (np. MariaDB) i chcą używać danych o wykopanym kamieniu poza samym serwerem. W jego konfiguracji należy podać dane do połączenia z bazą, wymuszanie użycia SSL przy połączeniu (należy je wyłączyć, jeśli baza nie obsługuje SSL) i liczbę zarezerwowanych połączeń (zalecane min. 2).

W przypadku obu sposobów zapisu — należy podać także nazwę tabeli, w której przechowywane będą dane graczy.

Konfiguracja takich rzeczy jak wymóg wykopanego kamienia, uruchomienie chatu czy slowmode — odbywa się przy użyciu komend, opisanych w sekcji [Komendy](#keyboard-komendy).

----------------------------------------------------
### :speech_balloon: Konfiguracja wiadomości
W pliku messages.yml znajdują się wszystkie wiadomości. Mogą one przyjmować dwie formy:</br></br>

**Pojedyncza linia wiadomości**
```yaml
noPermission: "&cBrak uprawnień"
```
</br>
**Lista linii wiadomości**
```yaml
chatCleared:
- ""
- "&7Chat został wyczyszczony przez &a{PLAYER}"
- ""
```
</br>Każda sekcja może być pojedynczą linią lub listą — plugin automatycznie wykrywa typ sekcji i dopasowuje wysyłanie wiadomości, można więc utworzyć na przykład taką sekcję:
```yaml
chatCleared: "&7Chat został wyczyszczony przez &a{PLAYER}"
```
----------------------------------------------------
### :keyboard: Komendy
W pluginie jest jedna komenda — **/stonechat**, z aliasami **/chat** i **/c**. Wszystkie funkcje dostępne są z użyciem odpowiednich argumentów:
Komenda | Opis komendy | Uprawnienie
------- | ---- | -----------
/stonechat help | Wyświetla pomoc pluginu | stonechat.help
/stonechat on | Włącza chat | stonechat.on
/stonechat off | Wyłącza chat | stonechat.off
/stonechat toggle | Przełącza uruchomienie chatu | stonechat.toggle
/stonechat clear | Czyści chat | stonechat.clear
/stonechat slow <czas_w_sekundach> | Uruchamia slowmode na chacie, podanie **0** wyłącza slowmode | stonechat.slow
/stonechat stone <liczba> | Zmienia wymóg wykopanego kamienia, podanie **0** wyłącza wymóg | stonechat.stone
/stonechat reload | Ponownie ładuje konfigurację wiadomości i autozapisu | stonechat.reload
----------------------------------------------------
### :no_entry: Uprawnienia
Poza uprawnieniami do komend — dostępne są dodatkowe uprawnienia zbiorcze oraz uprawnienia do omijania ograniczeń:
Uprawnienie | Opis uprawnienia
----------- | ----------------
stonechat.* | Zawiera w sobie wszystkie uprawnienia pluginu
stonechat.bypass.* | Zawiera w sobie wszystkie uprawnienia od omijania ograniczeń
stonechat.bypass.chatoff | Pozwala na pisanie mimo wyłączonego chatu
stonechat.bypass.stone | Pozwala na pisanie mimo niewykopania odpowiedniej liczby kamieni
stonechat.bypass.slowmode | Pozwala na pisanie z pominięciem slowmode
----------------------------------------------------
### :memo: Błędy i propozycje
Wszelkie błędy, propozycje dodania czegoś nowego czy jakiekolwiek pytania — powinny być zadawane [tu](https://github.com/Kamilkime/StoneChat/issues). Jeśli nie posiadasz konta na GitHub'ie, możesz także napisać do mnie na Discordzie — **Kamilkime#9792**.
----------------------------------------------------
### :unlock: Licencja
Plugin rozpowszechniany jest na licencji [Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/), która pozwala na dalszą modyfikację kodu (również w celach komercyjnych), pod warunkiem zachowania oryginalnych informacji o licencji i wskazaniu zmian w oryginalnym kodzie.
44 changes: 44 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import org.apache.tools.ant.filters.ReplaceTokens

plugins {
id 'java-library'
id 'com.github.johnrengelman.shadow' version '5.2.0'
}

group = 'pl.kamilkime'
version = '1.0'

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

repositories {
mavenCentral()

maven {
name = 'spigotmc-repo'
url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
}

maven {
name = 'sonatype'
url = 'https://oss.sonatype.org/content/groups/public/'
}
}

dependencies {
compileOnly 'org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT'
implementation 'com.zaxxer:HikariCP:4.0.3'
}

processResources {
from(sourceSets.main.resources.srcDirs) {
filter ReplaceTokens, tokens: [version: version]
}
}

shadowJar {
relocate 'com.zaxxer.hikari', 'pl.kamilkime.stonechat.libs.com.zaxxer.hikari'
relocate 'org.slf4j', 'pl.kamilkime.stonechat.libs.org.slf4j'

archiveFileName = "$baseName v$version.$extension"
}
Empty file added gradle.properties
Empty file.
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit 6e9c48b

Please sign in to comment.