עבור לתוכן

WIP | Jiscord | הרחבה ל-Discord4J | כולל מדריך קצר

תגובה מומלצת
צוות האתר אישר תגובה זו וניתן לסמוך על התוכן הנכתב בה.

יוצר/ת האשכול DrBenana
  • בן ʕ•ᴥ•ʔ
  • 56
  • 196 הודעות
(נערך)

Jiscord.png.66143e8a899f60adec2a1b55d269e5da.png

אהלן חבר'ה, מה נשמע?

לא מזמן התחלתי לעבוד על הרחבה חדשה בשם Jiscord ל-Discord4J. ההרחבה בנויה לצרכים שלי ומותאמת לצורה שאני רגיל לתכנת בה.

מעכשיו מודיע שההרחבה לא מומלצת לכל אחד ויש לשקול להשתמש ב-Discord4J נקי ללא הספרייה.

- הסורס קוד של הספרייה יעלה בקרוב, כרגע תעלה רק הורדה לספרייה SHADED (עם כל הקבצים מוכנים בתוכה)  // הספרייה עדיין לא לגמרי מתועדת -

רישיון:

ספויילר - הסתר תוכן

MIT License

Copyright (c) 2018 Ben Timor - DrBenana

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

 

עכשיו נגיע לעניין, הספרייה נורא פשוטה לשימוש והיא מכילה בתוכה 3 דברים עיקריים.

1. היא עושה באופן אוטומטי כל מני שטויות שלאף אחד אין כוח לעשות + EasyEmbed.

2. מערכת פקודות מבוססת אנוטציות (Annotations).

3. מערכת הרשאות.

 

עם מה הספרייה מגיעה בתוכה בגרסת ה-Shaded?

Shaded Discord4J

- BlueStoneUtils

* מומלץ לייבא גם את הספרייה jackson-databind, זה יחסוך באגים של Discord4J במקרים מסוימים אך נכון לכרגע היא לא כלולה ב-Jiscord עצמה. יבוא באמצעות Maven:

ספויילר - הסתר תוכן

<repositories>
        <repository>
            <id>jcenter</id>
            <url>http://jcenter.bintray.com</url>
        </repository>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
</repositories>
<dependencies>
	<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.4</version>
        </dependency>
</dependencies>

 

 

בוט בסיסי עם Jiscord

- מעכשיו מודיע שכדי להבין את המדריך, צריך להיות עם ידע בסיסי ב-Java ובבוטים לדיסקורד -

בסה"כ כדי ליצור בוט ב-Jiscord, אתם צריכים לקבוע ב-Config של Jiscord את ה-Token. את זה ניתן לעשות בקלות:

Jiscord.getConfig().setToken("TOKEN");

זהו, תריצו והבוט יעבוד. Jiscord תטפל אוטומטית בהתחברות וביצירה של ה-Client.

 

להתחיל עם מערכת פקודות

קודם כל, אם רוצים להשתמש במערכת הפקודות של Jiscord, מומלץ לקבוע Prefix ברירת מחדל עבור הפקודות. את ה-Prefix גם קובעים לקונפיג בדרך הזו:

Jiscord.getConfig().setPrefix("$"); // The prefix is $

עכשיו, אני לא הולך להסביר יותר מדי, אבל זה קוד לפקודה בסיסית (ניתן לרשת את SampleCommand או VoidSampleCommand על מנת לקבל את המתודה onCommand בצורה נוחה יותר):

* ל-CommandHandler יש עוד מתודות מלבד ה-label. מוזמנים לבדוק את העניין.

import blue.bluestone.Jiscord.commands.CommandHandler;
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;

public class YourGameCommand {

	@CommandHandler(label = {"your", "game", "yourgame" /*, "Every command that has to run this code" */})
	public void onCommand(MessageReceivedEvent e, String label, String[] args, String msg) {

	}
}

במידה והמתודה של הפקודה מחזירה String, הבוט ישלח את ה-String שהוחזר לצ'אנל בו נשלחה ההודעה.

עכשיו רושמים את הפקודה בצורה הזו:

CommandManager.loadCommands(new YourGameCommand()/*, new AnotherCommand()...*/);

במידה ורוצים להריץ קוד לפני הפקודה, ניתן לעשות את זה בצורה הזו (במידה וזה יחזיר false, הפקודה לא תרוץ):

new CommandManager(new YourGameCommand(), messageReceivedEvent -> {
			// Some Code
			return true;
});

זהו, יצרתם פקודה בסיסית. :claps:

 

מערכת ההרשאות

מערכת ההרשאות נורא פשוטה להבנה ונמצאת במחלקת Permissions. אם מישהו יסתבך בזה, אני אעלה עליה הסבר אבל אני מניח שאנשים ידעו להשתמש בזה בעצמם כבר. רק כמה דברים בנוגע למערכת:

- יש אנטי-הרשאה. אם אתם רוצים לבטל למישהו הרשאה לפקודה לדוגמה, אתם מוסיפים לו את ההרשאה -label (מינוס הפקודה)

- במידה ותפעילו באנוטציה את זה שחייב הרשאה בשביל הפקודה, אז ההרשאה היא תמיד ה-label

- יש 2 הרשאות מאסטר (הרשאות שנותנות פול הרשאות על הבוט). ההרשאה הראשונה היא * והשנייה היא **. ההבדל בינהן הוא שרק להרשאה ** יש אופציה להריץ פקודות שדורשות הרשאה של ** (כלומר, אם יש פקודה שדורשת את ההרשאה **, רק מי שיש לו את ההרשאה הזו יוכל להריץ אותה ומי שיש לו את ההרשאה * יוכל להריץ כל פקודה חוץ ממנה).

 

יש גם EasyEmbed אבל עם זה תסתדרו כבר.

 

https://github.com/DrBenana/Jiscord

 

פה אני אסיים את זה, מפה תנסו להסתדר ואם יש לכם שאלות (גם בנוגע ל-Jiscord וגם בנוגע ל-BlueStoneUtils) אני פה P:

שיהיה יום מעולההה

נערך על ידי DrBenana
קישור ישיר להודעה
שתף באתרים אחרים

  • אהבתי 2
הצג חתימה
Apophis
  • אופיר
  • 226
  • 1.4k הודעות

מדריך מצויין!

ננעץ:ohh:

קישור ישיר להודעה
שתף באתרים אחרים

  • אהבה 1
הצג חתימה
  • Apophis pinned this אשכול
יוצר/ת האשכול DrBenana
  • בן ʕ•ᴥ•ʔ
  • 56
  • 196 הודעות
לפני כעת Apophis אמר:

מדריך מצויין!

ננעץ:ohh:

תודה רבה (:

קישור ישיר להודעה
שתף באתרים אחרים

Sean.
  • שון
  • 1084
  • 7k הודעות

אחלה מדריך!

ישר כוח.

קישור ישיר להודעה
שתף באתרים אחרים

  • אהבה 1
הצג חתימה
NadavOhana
  • נדב אוחנה
  • 1202
  • 5k הודעות

כבוד!

בהצלחה במשימתך ♥

 

נ.ב אני צריך את העזרה שלך הו הלואי הדיסקורד 

קישור ישיר להודעה
שתף באתרים אחרים

  • אהבתי 1
  • אהבה 1
הצג חתימה
Quicky
  • Yair
  • 104
  • 466 הודעות

@NadavOhana הוא עוזר רק לי

קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול DrBenana
  • בן ʕ•ᴥ•ʔ
  • 56
  • 196 הודעות
לפני 1 שעה NadavOhana אמר:

כבוד!

בהצלחה במשימתך ♥

 

נ.ב אני צריך את העזרה שלך הו הלואי הדיסקורד 

שלח לי הודעה P:

קישור ישיר להודעה
שתף באתרים אחרים

Azure
  • טל
  • 845
  • 5k הודעות

סליחה על הבורות, לא הבנתי שום דבר xD תעזוררר לייי @DrBenana

קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול DrBenana
  • בן ʕ•ᴥ•ʔ
  • 56
  • 196 הודעות
לפני כעת Scrab אמר:

סליחה על הבורות, לא הבנתי שום דבר xD תעזוררר לייי @DrBenana

אל תעצבן אותי יא סקראבבבב

לך תלמד לתכנת פכככ :laughing:

קישור ישיר להודעה
שתף באתרים אחרים

  • אהבה 1
הצג חתימה
Cactus
  • אורי
  • 444
  • 2.2k הודעות

לא הבנתי עד הסוף מה המטרה של הjiscord ראיתח את הקוד והבנתי אותו אבל מה ההרחבה הזאת של הדיסקורד עוזרת?

נ.ב תודה על הפרסום

קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול DrBenana
  • בן ʕ•ᴥ•ʔ
  • 56
  • 196 הודעות
לפני 14 שעות Cactus אמר:

לא הבנתי עד הסוף מה המטרה של הjiscord ראיתח את הקוד והבנתי אותו אבל מה ההרחבה הזאת של הדיסקורד עוזרת?

נ.ב תודה על הפרסום

זו הרחבה שעוזרת לך לפתח בוטים עם Discord4J בהתאם לצרכים שלי.

לדוגמה, במקום לרשום איוונט עם Discord4J, לבצע בדיקה אם ההודעה מתאימה לפקודה, לפרק את הפקודה לרכיבים ולבדוק הרשאות - Jiscord עושה את כל זה בשורה וחצי של קוד.

קישור ישיר להודעה
שתף באתרים אחרים

  • Apophis unpinned this אשכול
Cactus
  • אורי
  • 444
  • 2.2k הודעות
לפני 2 שעות DrBenana אמר:

זו הרחבה שעוזרת לך לפתח בוטים עם Discord4J בהתאם לצרכים שלי.

לדוגמה, במקום לרשום איוונט עם Discord4J, לבצע בדיקה אם ההודעה מתאימה לפקודה, לפרק את הפקודה לרכיבים ולבדוק הרשאות - Jiscord עושה את כל זה בשורה וחצי של קוד.

אה וואי. נשמע מדהים . בהצלחה!

קישור ישיר להודעה
שתף באתרים אחרים

התחבר או הרשם על מנת להגיב.

עליך להיות משתמש רשום על מנת להגיב

צור חשבון

צור חשבון חדש בקהילה בקלי קלות.

רישום חשבון חדש

התחבר

משתמש קיים? התחבר.

התחבר עכשיו

תתי פורומים

בפורום זה אין תתי פורומים

מנהלי הפורום

בפורום זה אין מנהלים

אולי יעניין אותך גם

×
×
  • צור חדש...