You've already forked Epicnabbo-Catalogus-Updated-Daily
🆙 Added fixed cms
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Seed the application's database.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$this->call([
|
||||
// General seeders
|
||||
WebsiteSettingsSeeder::class,
|
||||
WebsiteLanguageSeeder::class,
|
||||
WebsitePermissionSeeder::class,
|
||||
WebsiteWordfilterSeeder::class,
|
||||
WebsiteMaintenanceTasksSeeder::class,
|
||||
|
||||
WebsiteArticleSeeder::class,
|
||||
WebsiteTeamSeeder::class,
|
||||
|
||||
// Shop
|
||||
WebsiteShopCategoriesSeeder::class,
|
||||
WebsiteShopArticleSeeder::class,
|
||||
|
||||
// Help center
|
||||
WebsiteRuleCategorySeeder::class,
|
||||
WebsiteRuleSeeder::class,
|
||||
WebsiteHelperCenterCategorySeeder::class,
|
||||
WebsiteHelperCenterCategorySeeder::class,
|
||||
|
||||
// Values
|
||||
WebsiteRareValuesCategorySeeder::class,
|
||||
|
||||
// Housekeeping permissions
|
||||
HousekeepingPermissionSeeder::class,
|
||||
]);
|
||||
|
||||
// \App\Models\User::factory(10)->create();
|
||||
|
||||
// \App\Models\User::factory()->create([
|
||||
// 'name' => 'Test User',
|
||||
// 'email' => 'test@example.com',
|
||||
// ]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\WebsiteHousekeepingPermission;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class HousekeepingPermissionSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
$permissions = [
|
||||
[
|
||||
'permission' => 'can_access_housekeeping',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to login to the housekeeping',
|
||||
],
|
||||
[
|
||||
'permission' => 'edit_user',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to edit a user',
|
||||
],
|
||||
[
|
||||
'permission' => 'reset_user_password',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to reset the password for a user',
|
||||
],
|
||||
[
|
||||
'permission' => 'delete_user',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to delete a user',
|
||||
],
|
||||
[
|
||||
'permission' => 'write_article',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to write an article',
|
||||
],
|
||||
[
|
||||
'permission' => 'edit_article',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to edit an article',
|
||||
],
|
||||
[
|
||||
'permission' => 'delete_article',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to delete an article',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_wordfilter',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage the wordfilter',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_bans',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage the bans',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_room_chatlogs',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to read room chatlogs',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_private_chatlogs',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to read private chatlogs',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_catalog_pages',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage catalog pages',
|
||||
],
|
||||
[
|
||||
'permission' => 'delete_catalog_pages',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to delete catalog pages',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_emulator_settings',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage emulator settings',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_emulator_texts',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage emulator texts',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_website_settings',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage website settings',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_website_blacklists',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage website blacklists',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_website_whitelists',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage website whitelists',
|
||||
],
|
||||
[
|
||||
'permission' => 'view_activity_logs',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to view activity logs',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_staff_applications',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to manage staff applications',
|
||||
],
|
||||
[
|
||||
'permission' => 'delete_website_settings',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to delete website settings',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_permissions',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to manage hotel rank permissions',
|
||||
],
|
||||
[
|
||||
'permission' => 'delete_permissions',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to delete hotel rank permissions',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_article_tags',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage article tags',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_teams',
|
||||
'min_rank' => 6,
|
||||
'description' => 'The minimum rank required before being able to manage teams',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_achievements',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to manage achievements',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_commandlogs',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to manage command logs',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_camera_web',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to manage published camera photos',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_housekeeping_permissions',
|
||||
'min_rank' => 7,
|
||||
'description' => 'The minimum rank required before being able to manage housekeeping permissions',
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($permissions as $permission) {
|
||||
WebsiteHousekeepingPermission::query()->firstOrCreate(['permission' => $permission['permission']], [
|
||||
'permission' => $permission['permission'],
|
||||
'min_rank' => $permission['min_rank'],
|
||||
'description' => $permission['description'],
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Miscellaneous\WebsiteInstallation;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class TestingSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Seed the application's database.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
WebsiteInstallation::query()->insert(['completed' => true, 'installation_key' => 'key']);
|
||||
|
||||
$this->call([
|
||||
WebsiteSettingsSeeder::class,
|
||||
WebsiteLanguageSeeder::class,
|
||||
WebsitePermissionSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Shop\WebsiteShopArticle;
|
||||
use App\Models\Shop\WebsiteShopArticleFeature;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteArticleFeatureSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$articles = WebsiteShopArticle::all();
|
||||
$firstArticle = $articles[0];
|
||||
$secondArticle = $articles[1];
|
||||
$thirdArticle = $articles[2];
|
||||
|
||||
if (! $firstArticle || ! $secondArticle || ! $thirdArticle) {
|
||||
return;
|
||||
}
|
||||
|
||||
$features = [
|
||||
[
|
||||
'article_id' => $firstArticle->id,
|
||||
'content' => 'Bronze VIP badge',
|
||||
],
|
||||
[
|
||||
'article_id' => $firstArticle->id,
|
||||
'content' => 'Bronze VIP catalogue',
|
||||
],
|
||||
[
|
||||
'article_id' => $firstArticle->id,
|
||||
'content' => 'Bronze VIP commands',
|
||||
],
|
||||
[
|
||||
'article_id' => $firstArticle->id,
|
||||
'content' => '350 credits every 15 minutes',
|
||||
],
|
||||
[
|
||||
'article_id' => $firstArticle->id,
|
||||
'content' => '350 duckets every 15 minutes',
|
||||
],
|
||||
[
|
||||
'article_id' => $firstArticle->id,
|
||||
'content' => '1 diamond every hour',
|
||||
],
|
||||
|
||||
// Silver VIP
|
||||
[
|
||||
'article_id' => $secondArticle->id,
|
||||
'content' => 'Silver VIP badge',
|
||||
],
|
||||
[
|
||||
'article_id' => $secondArticle->id,
|
||||
'content' => 'Silver VIP catalogue',
|
||||
],
|
||||
[
|
||||
'article_id' => $secondArticle->id,
|
||||
'content' => 'Silver VIP commands',
|
||||
],
|
||||
[
|
||||
'article_id' => $secondArticle->id,
|
||||
'content' => '450 credits every 15 minutes',
|
||||
],
|
||||
[
|
||||
'article_id' => $secondArticle->id,
|
||||
'content' => '450 duckets every 15 minutes',
|
||||
],
|
||||
[
|
||||
'article_id' => $secondArticle->id,
|
||||
'content' => '3 diamond every hour',
|
||||
],
|
||||
|
||||
// Gold VIP
|
||||
[
|
||||
'article_id' => $thirdArticle->id,
|
||||
'content' => 'Gold VIP badge',
|
||||
],
|
||||
[
|
||||
'article_id' => $thirdArticle->id,
|
||||
'content' => 'Gold VIP catalogue',
|
||||
],
|
||||
[
|
||||
'article_id' => $thirdArticle->id,
|
||||
'content' => 'Gold VIP commands',
|
||||
],
|
||||
[
|
||||
'article_id' => $thirdArticle->id,
|
||||
'content' => '550 credits every 15 minutes',
|
||||
],
|
||||
[
|
||||
'article_id' => $thirdArticle->id,
|
||||
'content' => '550 duckets every 15 minutes',
|
||||
],
|
||||
[
|
||||
'article_id' => $thirdArticle->id,
|
||||
'content' => '5 diamond every hour',
|
||||
],
|
||||
];
|
||||
|
||||
WebsiteShopArticleFeature::insert($features, ['article_id']);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Articles\WebsiteArticle;
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class WebsiteArticleSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
if (User::count() === 0) {
|
||||
User::factory()->create();
|
||||
}
|
||||
|
||||
$title = 'Atom CMS has been installed';
|
||||
$slug = Str::slug($title);
|
||||
|
||||
WebsiteArticle::firstOrCreate(['slug' => $slug], [
|
||||
'slug' => $slug,
|
||||
'title' => $title,
|
||||
'short_story' => 'Welcome to your new hotel, we are super happy that you chose to use Atom CMS!',
|
||||
'full_story' => sprintf('<strong>Welcome to your new hotel</strong>!<br><br>First of all thank you for using Atom CMS - it truly means a lot❤️<br><br>We built Atom CMS for you and your users to get the best possible experience when it comes to visiting %s, and we hope the journey has been a pleasure for you so far.<br><br>We have used modern and industry approved technologies (Laravel & Tailwind CSS) in order to give you the most secure & robust CMS possible.<br><br>Our idea of a good CMS is <strong>accessibility</strong> and just that, is what we have tried to make Atom CMS, so that you can be able to customise it without being a PHP expert or frontend guru. <br/><br/><strong>Some of the built in features</strong><br/>Atom CMS comes packed with tons of features, we will however only mention a few that might help to improve your hotel further!<br/><ul><li>- <a style="color: #42b0f5; text-decoration: underline;" href="https://retros.guide/docs/atom-cms/vpn-block" target="_blank">VPN / IP manager</a> - Allows you to whitelist & blacklist specific IPs or ASNs</li><li>- <a style="color: #42b0f5; text-decoration: underline;" href="https://retros.guide/docs/atom-cms/themes" target="_blank">Theme system</a> - Switch between themes easily or built your own with the simplicity of running a single command!</li><li>- <a style="color: #42b0f5; text-decoration: underline;" href="https://retros.guide/docs/atom-cms/recaptcha" target="_blank">Google ReCaptcha</a> - Keep bots away from your site, by simply enabling Googles recaptcha</li><li>- Built in <a style="color: #42b0f5; text-decoration: underline;" href="https://retros.guide/docs/atom-cms/language" target="_blank">multi language support</a> - Allow your users to browse your site in their preferred language</li></ul><br/><strong>Built in theme system!</strong><br/> Atom CMS has its own theme system, making it an absolute breeze to brew up a new theme or switch themes between the existing ones. If you wish to build your own theme, but is a bit unsure how to start, then head over to the <a style="color: #42b0f5; text-decoration: underline;" href="https://retros.guide/docs/atom-cms/themes" target="__blank">Our documentation site</a>. It gives you a good idea on how to use the theming system and tons of other aspects of running your hotel✨<br><br>With everything being said it is time to wrap up the introduction, but before we do that we want to <strong>wish you the best of luck with your hotel</strong>!', setting('hotel_name')),
|
||||
'user_id' => User::first()->id,
|
||||
'image' => 'website_news_images/default.png',
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Help\WebsiteHelpCenterCategory;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteHelperCenterCategorySeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$categories = [
|
||||
[
|
||||
'name' => config('habbo.site.default_name') . ' Way',
|
||||
'content' => 'Welcome to the ' . config('habbo.site.default_name') . " Hotel, where fun and excitement are always around the corner! 🎉 To ensure that everyone has the best experience possible, we've created The " . config('habbo.site.default_name') . " Way - our special set of rules that keeps our community safe and friendly. 🌈<br/><br/>It's important to know that these rules and regulations can change without notice. As a member of our awesome " . config('habbo.site.default_name') . " community, you agree to follow these terms and conditions. 😊 If you don't, there may be sanctions applied to your account.<br/><br/>But don't worry! If you have any questions or concerns about The " . config('habbo.site.default_name') . ' Way, our friendly Hotel Staff are always here to help. 💬 Now, go ahead and click the button below to read The ' . config('habbo.site.default_name') . ' Way and join us in creating a fantastic environment for all! 🚀',
|
||||
'image_url' => 'safety_tips_1.png',
|
||||
'button_text' => config('habbo.site.default_name') . ' Way',
|
||||
'button_url' => '/help-center/rules',
|
||||
'position' => 1,
|
||||
],
|
||||
[
|
||||
'name' => 'Ban Appeals',
|
||||
'content' => "If you think you've been unfairly banned from our super cool hotel, no worries - we're here to help! 🌟 All you need to do is submit a ticket 🎟️ and let us know what happened.<br/><br/>We'll check it out and give you a fair chance to return to the awesome world of " . config('habbo.site.default_name') . "! 🕺💃 So go ahead, share your side of the story, and let's get you back in on the fun! 😄",
|
||||
'image_url' => 'safety_tips_5.png',
|
||||
'button_text' => 'Submit a ban appeal',
|
||||
'button_url' => '/help-center/tickets/create',
|
||||
'position' => 2,
|
||||
],
|
||||
[
|
||||
'name' => 'VPN Unblock',
|
||||
'content' => "We know that sometimes you might need to use a VPN or proxy connection while visiting our fantastic hotel! 🏨 But since we want to keep our community safe and free from toxicity, we block these connections by default. 🛡️<br/><br/>However, we understand that there are exceptions, and we're here to help! 🌟 If you find yourself in one of these situations, you can request VPN unblocking:<br/><br/><div style='margin-left: 15px;'><strong>1.</strong> You're not using a VPN but still got flagged somehow. 🚩<br/><strong>2.</strong> You're at school or university and need a VPN to access " . config('habbo.site.default_name') . ". 🏫<br /><strong>3.</strong> You're on public connections that might be flagged as a VPN.</div> 📱<br/><br/>Please note that if using a VPN is optional for you, we usually deny the request. This is just to make sure we maintain a positive and friendly environment for all our users! 😄<br/><br/>To request VPN unblocking, simply submit a ticket with an explanation of your situation, and we'll do our best to help you out! Together, let's keep the " . config('habbo.site.default_name') . ' Hotel experience amazing for everyone! 🎉',
|
||||
'image_url' => 'safety_tips_2.png',
|
||||
'button_text' => 'Submit Unblock request',
|
||||
'button_url' => '/help-center/tickets/create',
|
||||
'position' => 3,
|
||||
],
|
||||
[
|
||||
'name' => 'Scam Reports',
|
||||
'content' => 'Hey ' . config('habbo.site.default_name') . " buddies! 🎉 We know that sometimes, unfortunately, users might try to scam others out of their coins, diamonds, or furniture. 😢 But don't worry, we've got your back! We don't tolerate this kind of behavior, and we're here to help you report it. 🌟<br/><br/>Have you been scammed? 😨<br/><br/>If so, we're here to assist! Just follow the template below and include it in a ticket under the 'Scam Reports' option:<br/><br/><div style='margin-left: 15px;'><strong>1.</strong> Scammed by:<br/><strong>2.</strong> Date of Scam:<br/><strong>3.</strong> Items Scammed:<br/><strong>4.</strong> Evidence (if available):</div><br/><br/>Remember, it's important to be honest and true to yourself! 🌈 Nobody likes a trickster, and stealing won't make you rich - it makes you a criminal. 😔 By reporting scams, we can work together to keep the " . config('habbo.site.default_name') . ' Hotel a fun, safe, and amazing place for everyone! 🎊',
|
||||
'image_url' => 'safety_tips_7.png',
|
||||
'button_text' => 'Submit scam report',
|
||||
'position' => 4,
|
||||
],
|
||||
// Left side boxes
|
||||
/*
|
||||
* [
|
||||
'name' => "GOTW Rules",
|
||||
'content' => "GOTW, or Gamer of the Week is all about celebrating the top events players from the past seven days. 🏆 For every hotel alerted event you win, you'll earn both GOTW points and diamonds! 💎 So put your gaming skills to the test and aim for the top!<br/><br/>Curious about the rules? No problem! Click the link below & you'll find all the information you need to become a GOTW pro.<br/><br/>Get ready to shine as the next Gamer of the Week! 🚀",
|
||||
'button_text' => "GOTW Rules",
|
||||
'position' => 1,
|
||||
'small_box' => true,
|
||||
],
|
||||
* */
|
||||
|
||||
[
|
||||
'name' => 'Room Ads',
|
||||
'content' => 'Hey there, ' . config('habbo.site.default_name') . " friends! 🌟 Did you know that you can make your room even cooler by displaying images in it? 😮 That's right! With room background furniture, you can embed images directly into your room on the hotel! 🖼️<br/><br/>However, by default, you won't have the furniture access or permission to do this. But no worries, you can apply for it! 🎉 All you need to do is submit a ticket and let us know why you'd like to have these awesome room ad rights. 📝<br/><br/>Once you've got the permission, you'll be able to customize your room and make it truly one-of-a-kind! 🌈 So go ahead and tell us why you need those rights, and let's take your room to the next level together! 🚀",
|
||||
'button_text' => 'Submit a ticket',
|
||||
'button_url' => '/help-center/tickets/create',
|
||||
'position' => 1,
|
||||
'small_box' => true,
|
||||
],
|
||||
[
|
||||
'name' => 'Something else?',
|
||||
'content' => "We know that sometimes you might have questions, concerns, or just need a little help that doesn't fit into any specific category. No worries, we've got you covered! 🌟<br/><br/>For anything else that you need assistance with, simply select the 'Other' option when submitting a ticket. 📝<br/><br/>Our friendly and helpful Hotel Staff will be more than happy to get in touch and provide the support you need. 🤗 So go ahead, reach out to us for any reason, big or small, and let's make your " . config('habbo.site.default_name') . ' experience the best it can be! 🚀',
|
||||
'button_text' => 'Submit a ticket',
|
||||
'button_url' => '/help-center/tickets/create',
|
||||
'position' => 2,
|
||||
'small_box' => true,
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($categories as $category) {
|
||||
$attributes = [];
|
||||
|
||||
foreach ($category as $key => $value) {
|
||||
$attributes[$key] = $value;
|
||||
}
|
||||
|
||||
WebsiteHelpCenterCategory::updateOrCreate(['name' => $category['name']], $attributes);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Miscellaneous\WebsiteLanguage;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteLanguageSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$languages = [
|
||||
['country_code' => 'en', 'language' => 'English'],
|
||||
['country_code' => 'da', 'language' => 'Danish'],
|
||||
['country_code' => 'fi', 'language' => 'Finnish'],
|
||||
['country_code' => 'de', 'language' => 'German'],
|
||||
['country_code' => 'fr', 'language' => 'French'],
|
||||
['country_code' => 'tr', 'language' => 'Turkish'],
|
||||
['country_code' => 'se', 'language' => 'Swedish'],
|
||||
['country_code' => 'nl', 'language' => 'Netherland'],
|
||||
['country_code' => 'br', 'language' => 'Portuguese (Brazil)'],
|
||||
['country_code' => 'it', 'language' => 'Italy'],
|
||||
['country_code' => 'es', 'language' => 'Spain'],
|
||||
['country_code' => 'no', 'language' => 'Norwegian'],
|
||||
];
|
||||
|
||||
WebsiteLanguage::query()->upsert($languages, ['country_code']);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Game\Permission;
|
||||
use App\Models\Miscellaneous\WebsiteMaintenanceTask;
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class WebsiteMaintenanceTasksSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$permission = Permission::orderByDesc('id')->first();
|
||||
$user = User::where('rank', $permission->id)->first();
|
||||
|
||||
if ($user === null) {
|
||||
$user = User::create([
|
||||
'username' => 'Admin',
|
||||
'mail' => 'admin@example.com',
|
||||
'password' => Hash::make(Str::password()),
|
||||
'account_created' => time(),
|
||||
'last_login' => time(),
|
||||
'motto' => 'Atom',
|
||||
'look' => 'fa-201407-1324.hr-828-1035.ch-3001-1261-1408.sh-3068-92-1408.cp-9032-1308.lg-270-1281.hd-209-3',
|
||||
'credits' => 0,
|
||||
'ip_register' => '127.0.0.1',
|
||||
'ip_current' => '127.0.0.1',
|
||||
'auth_ticket' => '',
|
||||
'home_room' => 0,
|
||||
'rank' => $permission?->id ?? 1,
|
||||
]);
|
||||
}
|
||||
|
||||
WebsiteMaintenanceTask::firstOrCreate(['task' => 'Working on the hotel'], [
|
||||
'user_id' => $user->id,
|
||||
'completed' => false,
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Miscellaneous\WebsitePermission;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsitePermissionSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$permissions = [
|
||||
[
|
||||
'permission' => 'bypass_vpn',
|
||||
'min_rank' => '6',
|
||||
'description' => 'Min rank to bypass vpn blocker check',
|
||||
],
|
||||
[
|
||||
'permission' => 'view_server_logs',
|
||||
'min_rank' => '7',
|
||||
'description' => 'Minimum required rank to access the log viewer',
|
||||
],
|
||||
[
|
||||
'permission' => 'housekeeping_access',
|
||||
'min_rank' => '7',
|
||||
'description' => 'Minimum required rank to access the log viewer',
|
||||
],
|
||||
[
|
||||
'permission' => 'delete_article_comments',
|
||||
'min_rank' => '7',
|
||||
'description' => 'Minimum required rank to delete article comments without being the author',
|
||||
],
|
||||
[
|
||||
'permission' => 'manage_website_tickets',
|
||||
'min_rank' => '7',
|
||||
'description' => 'Minimum required rank to view and reply to others tickets',
|
||||
],
|
||||
[
|
||||
'permission' => 'delete_website_tickets',
|
||||
'min_rank' => '7',
|
||||
'description' => 'Minimum required rank to delete others tickets',
|
||||
],
|
||||
[
|
||||
'permission' => 'delete_website_ticket_replies',
|
||||
'min_rank' => '7',
|
||||
'description' => 'Minimum required rank to delete replies on a ticket',
|
||||
],
|
||||
[
|
||||
'permission' => 'generate_logo',
|
||||
'min_rank' => '7',
|
||||
'description' => 'Minimum required rank to use the logo generator',
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($permissions as $permission) {
|
||||
WebsitePermission::firstOrCreate(['permission' => $permission['permission']], [
|
||||
'permission' => $permission['permission'],
|
||||
'min_rank' => $permission['min_rank'],
|
||||
'description' => $permission['description'],
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Community\RareValue\WebsiteRareValueCategory;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteRareValuesCategorySeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$categories = [
|
||||
[
|
||||
'name' => 'Limited Edition',
|
||||
'badge' => 'hotel-icon',
|
||||
'priority' => 1,
|
||||
],
|
||||
[
|
||||
'name' => 'Ultra rares',
|
||||
'badge' => 'hotel-icon',
|
||||
'priority' => 2,
|
||||
],
|
||||
[
|
||||
'name' => 'Super rares',
|
||||
'badge' => 'hotel-icon',
|
||||
'priority' => 3,
|
||||
],
|
||||
[
|
||||
'name' => 'Regulars',
|
||||
'badge' => 'hotel-icon',
|
||||
'priority' => 4,
|
||||
],
|
||||
];
|
||||
|
||||
WebsiteRareValueCategory::upsert($categories, ['name'], ['name', 'badge', 'priority']);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Help\WebsiteRuleCategory;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteRuleCategorySeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$categories = [
|
||||
[
|
||||
'name' => 'General Rules',
|
||||
'description' => 'The general rules of the hotel',
|
||||
'badge' => 'hotel-icon',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'name' => 'Account Rules',
|
||||
'description' => 'The general account rules on Habbo',
|
||||
'badge' => 'hotel-icon',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'name' => 'Hotel',
|
||||
'description' => 'Hotel rules & guidelines',
|
||||
'badge' => 'hotel-icon',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
];
|
||||
|
||||
WebsiteRuleCategory::upsert($categories, ['name']);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Help\WebsiteRule;
|
||||
use App\Models\Help\WebsiteRuleCategory;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteRuleSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$categories = WebsiteRuleCategory::all()->pluck('id');
|
||||
|
||||
$rules = [
|
||||
// General rules
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.1',
|
||||
'rule' => 'Do not abuse the Call for Help (CFH) system; it should be used during emergency purposes only.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.2',
|
||||
'rule' => 'Do not advertise other Habbo Retros; hotel links or purposely mentioning the name of another hotel with the intentions of advertising is not permitted.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.3',
|
||||
'rule' => 'Do not attempt to or scam credits or furniture from other users through betting, gaming, or trading.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.4',
|
||||
'rule' => 'Do not bully, harass, or abuse other users; avoid violent or aggressive behavior.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.5',
|
||||
'rule' => 'Do not disclose any personal information of another user (e.g., address, IP Address, phone number, school, private images etc.) without their consent.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.6',
|
||||
'rule' => 'Do not excessively repeat identical or similar statements (spamming).',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.7',
|
||||
'rule' => 'Users are to not participate in any sexual, inappropriate, or generally objective acts towards other users without their prior consent.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.8',
|
||||
'rule' => 'Do not make rooms with inappropriate or abusive names.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.9',
|
||||
'rule' => 'Do not attempt to or successfully harm a user’s home internet connection.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[0],
|
||||
'paragraph' => '1.10',
|
||||
'rule' => 'Do not disrupt events with explicit language or negative behavior.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
|
||||
// Accounts rules
|
||||
[
|
||||
'category_id' => $categories[1],
|
||||
'paragraph' => '2.1',
|
||||
'rule' => 'Do not attempt to or give away, buy, sell, or trade your Habbo account and/or items for virtual items from another game, accounts from another game, cash, or vice versa without permission from an Administrator. This includes giving away, buying, selling or trading furniture/currency for Habbo furniture/currency or vice versa. ',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[1],
|
||||
'paragraph' => '2.2',
|
||||
'rule' => 'Do not create a username with an offensive name that is insulting, racist, harassing, or generally objectionable.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[1],
|
||||
'paragraph' => '2.3',
|
||||
'rule' => 'Do not evade an IP Address ban.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[1],
|
||||
'paragraph' => '2.4',
|
||||
'rule' => 'Do not share your account with other users.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[1],
|
||||
'paragraph' => '2.5',
|
||||
'rule' => 'Do not threaten to, attempt to, or hack other users accounts.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[1],
|
||||
'paragraph' => '2.6',
|
||||
'rule' => 'Do not create multiple accounts for the purpose of taking an advantage over gaining more in-game currency and/or rares of any kind.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[1],
|
||||
'paragraph' => '2.7',
|
||||
'rule' => 'Do not re-appeal your ban unless stated otherwise. This means if you re-appeal in 2 days after your first appeal was denied and you were told to re-appeal in 2-3 weeks, you will be banned from the forum as well as the hotel.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[1],
|
||||
'paragraph' => '2.8',
|
||||
'rule' => 'Accounts are limited to 2 per person. This means, only 1 Alt acc is acceptable. Anything more than this, will result in a full account wipe including credits, and rares.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
|
||||
// Hotel rules
|
||||
[
|
||||
'category_id' => $categories[2],
|
||||
'paragraph' => '3.1',
|
||||
'rule' => 'Do not attempt to or exploit errors of Habbo; report it to the Administration immediately.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[2],
|
||||
'paragraph' => '3.2',
|
||||
'rule' => 'Do not attempt to or refund your VIP Membership or donation to Habbo at any given time; all payments are final.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[2],
|
||||
'paragraph' => '3.3',
|
||||
'rule' => 'Do not intentionally give wrong or misleading information to staff members in reports about rule violations, complaints, bug reports, or support requests.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[2],
|
||||
'paragraph' => '3.4',
|
||||
'rule' => 'Do not make false statements against Habbo or any other part of its services.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[2],
|
||||
'paragraph' => '3.5',
|
||||
'rule' => 'Do not pretend to be a representative of Habbo. This includes mimicing, acting like them, and or claim to have staff powers.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[2],
|
||||
'paragraph' => '3.6',
|
||||
'rule' => 'Do not threaten to, attempt to, or use any scripts or third party software to enter, disrupt, or modify Habbo.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
[
|
||||
'category_id' => $categories[2],
|
||||
'paragraph' => '3.7',
|
||||
'rule' => 'Non-harmful auto-typing, auto-clicking and other programs can only be used if you are the room owner or with permission from the room owner.',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
],
|
||||
];
|
||||
|
||||
if (WebsiteRule::doesntExist()) {
|
||||
WebsiteRule::insert($rules);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,312 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Miscellaneous\WebsiteSetting;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteSettingsSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$settings = [
|
||||
[
|
||||
'key' => 'theme',
|
||||
'value' => 'dusk',
|
||||
'comment' => 'Specifies the active CMS theme (dusk, atom)',
|
||||
],
|
||||
[
|
||||
'key' => 'hotel_name',
|
||||
'value' => 'Atom',
|
||||
'comment' => 'Specifies the name of the hotel',
|
||||
],
|
||||
[
|
||||
'key' => 'rcon_ip',
|
||||
'value' => '127.0.0.1',
|
||||
'comment' => 'Specifies the RCON IP used for the CMS to perform RCON commands',
|
||||
],
|
||||
[
|
||||
'key' => 'rcon_port',
|
||||
'value' => '3001',
|
||||
'comment' => 'Specifies the RCON port used for the CMS to perform RCON commands',
|
||||
],
|
||||
[
|
||||
'key' => 'start_motto',
|
||||
'value' => sprintf('I love %s hotel', setting('hotel_name') ?? config('habbo.site.default_name')),
|
||||
'comment' => 'Specifies the start motto the user gets assigned upon registration',
|
||||
],
|
||||
[
|
||||
'key' => 'start_credits',
|
||||
'value' => '5000',
|
||||
'comment' => 'Specifies the amount of credits a user receives upon registration',
|
||||
],
|
||||
[
|
||||
'key' => 'start_duckets',
|
||||
'value' => '5000',
|
||||
'comment' => 'Specifies the amount of duckets a user receives upon registration',
|
||||
],
|
||||
[
|
||||
'key' => 'start_diamonds',
|
||||
'value' => '100',
|
||||
'comment' => 'Specifies the amount of diamonds a user receives upon registration',
|
||||
],
|
||||
[
|
||||
'key' => 'start_points',
|
||||
'value' => '0',
|
||||
'comment' => 'Specifies the amount of points a user receives upon registration',
|
||||
],
|
||||
[
|
||||
'key' => 'avatar_imager',
|
||||
'value' => 'https://www.habbo.com/habbo-imaging/avatarimage?figure=',
|
||||
'comment' => 'The base url for the imager used to render avatars on the CMS',
|
||||
],
|
||||
[
|
||||
'key' => 'start_look',
|
||||
'value' => 'fa-201407-1324.hr-828-1035.ch-3001-1261-1408.sh-3068-92-1408.cp-9032-1308.lg-270-1281.hd-209-3',
|
||||
'comment' => 'Sets the starting outfit for any new user registering',
|
||||
],
|
||||
[
|
||||
'key' => 'referrals_needed',
|
||||
'value' => '5',
|
||||
'comment' => 'Specifies the amount of referrals needed before being able to claim the referral reward',
|
||||
],
|
||||
[
|
||||
'key' => 'referral_reward_amount',
|
||||
'value' => '30',
|
||||
'comment' => 'Specifies the reward amount when a user claims a reward',
|
||||
],
|
||||
[
|
||||
'key' => 'referral_reward_currency_type',
|
||||
'value' => 'diamonds',
|
||||
'comment' => 'Specify what type of currency that are given upon referral reward claim (credits, duckets, diamonds, points)',
|
||||
],
|
||||
[
|
||||
'key' => 'point_currency_number',
|
||||
'value' => '101',
|
||||
'comment' => 'Determines what number the points currency type is',
|
||||
],
|
||||
[
|
||||
'key' => 'discord_invitation_link',
|
||||
'value' => 'https://discord.gg/rX3aShUHdg',
|
||||
'comment' => 'The link used to invite people to your Discord server',
|
||||
],
|
||||
[
|
||||
'key' => 'discord_widget_id',
|
||||
'value' => '1008150166521524264',
|
||||
'comment' => 'The Discord widget ID you want to show on the CMS',
|
||||
],
|
||||
[
|
||||
'key' => 'min_staff_rank',
|
||||
'value' => '4',
|
||||
'comment' => 'The minimum rank before being considered a staff member',
|
||||
],
|
||||
[
|
||||
'key' => 'min_rank_to_see_hidden_staff',
|
||||
'value' => '6',
|
||||
'comment' => 'The minimum rank to enable seeing hidden staff ranks & members',
|
||||
],
|
||||
[
|
||||
'key' => 'badges_path',
|
||||
'value' => '/client/flash/c_images/album1584',
|
||||
'comment' => 'The path to the badges folder, for the frontend',
|
||||
],
|
||||
[
|
||||
'key' => 'badge_path_filesystem',
|
||||
'value' => '/var/www/gamedata/c_images/album1584',
|
||||
'comment' => 'The path to the badges folder, for the backend',
|
||||
],
|
||||
[
|
||||
'key' => 'group_badge_path',
|
||||
'value' => '/client/flash/c_images/Badgeparts/generated',
|
||||
'comment' => 'The path that contains all the generated group badges',
|
||||
],
|
||||
[
|
||||
'key' => 'ads_path_filesystem',
|
||||
'value' => '/var/www/gamedata/custom',
|
||||
'comment' => 'The path for loading ADS from disk - for the Backend',
|
||||
],
|
||||
[
|
||||
'key' => 'ads_picture_path',
|
||||
'value' => '/gamedata/custom',
|
||||
'comment' => 'The path for loading ADS from the CMS - for the Frontend',
|
||||
],
|
||||
[
|
||||
'key' => 'nitro_external_texts_file',
|
||||
'value' => '/var/www/gamedata/config/ExternalTexts.json',
|
||||
'comment' => 'The path for loading ExternalTexts',
|
||||
],
|
||||
[
|
||||
'key' => 'maintenance_enabled',
|
||||
'value' => '0',
|
||||
'comment' => 'Determines whether maintenance is enabled or not',
|
||||
],
|
||||
[
|
||||
'key' => 'min_maintenance_login_rank',
|
||||
'value' => '5',
|
||||
'comment' => 'The minimum rank required to login to the hotel during maintenance',
|
||||
],
|
||||
[
|
||||
'key' => 'maintenance_message',
|
||||
'value' => "We're working very hard on making " . setting('hotel_name') . ' the best possible version of itself 💛<br><br> We want to make sure ' . setting('hotel_name') . ' lives up to the standards you deserve, hence we currently have no ETA for when we can open our doors.<br><br>We promise that once we feel confident that ' . setting('hotel_name') . " is ready for launch, we'll let everyone know about it.<br><br>- The " . setting('hotel_name') . ' team ⭐',
|
||||
'comment' => 'The maintenance message displayed to users while maintenance is activated',
|
||||
],
|
||||
[
|
||||
'key' => 'username_regex',
|
||||
'value' => '/^[a-zA-Z0-9_.-]+$/u',
|
||||
'comment' => 'The regex used to validate username input fields',
|
||||
],
|
||||
[
|
||||
'key' => 'min_housekeeping_rank',
|
||||
'value' => '6',
|
||||
'comment' => 'The minimum rank required to see the housekeeping button',
|
||||
],
|
||||
[
|
||||
'key' => 'housekeeping_url',
|
||||
'value' => '/housekeeping',
|
||||
'comment' => 'The url to the housekeeping page',
|
||||
],
|
||||
[
|
||||
'key' => 'max_accounts_per_ip',
|
||||
'value' => '2',
|
||||
'comment' => 'The maximum allowed accounts registered per IP address',
|
||||
],
|
||||
[
|
||||
'key' => 'google_recaptcha_enabled',
|
||||
'value' => '0',
|
||||
'comment' => 'Toggles whether google recaptcha is enabled or not - Do not enable if turnstile is enabled',
|
||||
],
|
||||
[
|
||||
'key' => 'cloudflare_turnstile_enabled',
|
||||
'value' => '1',
|
||||
'comment' => 'Determines whether cloudflare turnstile is enabled or not - Do not enable if google recaptche is enabled',
|
||||
],
|
||||
[
|
||||
'key' => 'vpn_block_enabled',
|
||||
'value' => '0',
|
||||
'comment' => 'Toggles whether the VPN blocker is enabled or not',
|
||||
],
|
||||
[
|
||||
'key' => 'ipdata_api_key',
|
||||
'value' => 'ADD-API-KEY-HERE',
|
||||
'comment' => 'The API key needed from ipdata.co to block VPNs (Only necessary if vpn block is enabled)',
|
||||
],
|
||||
[
|
||||
'key' => 'cms_logo',
|
||||
'value' => '/assets/images/kasja_atomlogo.png',
|
||||
'comment' => 'Default logo for the cms',
|
||||
],
|
||||
[
|
||||
'key' => 'cms_header',
|
||||
'value' => '/assets/images/kasja_mepage_header.png',
|
||||
'comment' => 'Default header for the me page',
|
||||
],
|
||||
[
|
||||
'key' => 'cms_me_backdrop',
|
||||
'value' => '/assets/images/kasja_mepage_image.png',
|
||||
'comment' => 'Default backdrop header for the me page',
|
||||
],
|
||||
[
|
||||
'key' => 'room_thumbnail_path',
|
||||
'value' => '/client/flash/c_images/rooms',
|
||||
'comment' => 'Path to room thumbnails',
|
||||
],
|
||||
[
|
||||
'key' => 'hotel_home_room',
|
||||
'value' => '0',
|
||||
'comment' => 'The homeroom every new users will be assigned to, leave as 0 if you do not wish to assign any home room',
|
||||
],
|
||||
[
|
||||
'key' => 'cms_color_mode',
|
||||
'value' => 'light',
|
||||
'comment' => 'Determines the color mode of the CMS (light = normal, dark = dark mode)',
|
||||
],
|
||||
[
|
||||
'key' => 'force_staff_2fa',
|
||||
'value' => '0',
|
||||
'comment' => 'If set to 1 every staff will be forced to apply 2FA before being able to visit any other page',
|
||||
],
|
||||
[
|
||||
'key' => 'website_wordfilter_enabled',
|
||||
'value' => '1',
|
||||
'comment' => 'Determines whether the wordfilter on the CMS will be enabled or not',
|
||||
],
|
||||
[
|
||||
'key' => 'requires_beta_code',
|
||||
'value' => '0',
|
||||
'comment' => 'Determines whether users need a beta code to register or not (0 for no & 1 for yes)',
|
||||
],
|
||||
[
|
||||
'key' => 'disable_registration',
|
||||
'value' => '0',
|
||||
'comment' => 'Determines whether registration is enabled or not (0 for no & 1 for yes)',
|
||||
],
|
||||
[
|
||||
'key' => 'give_hc_on_register',
|
||||
'value' => '0',
|
||||
'comment' => 'Determines whether the registered user will receive HC upon registration',
|
||||
],
|
||||
[
|
||||
'key' => 'hc_on_register_duration',
|
||||
'value' => '315569260',
|
||||
'comment' => 'Specifies the amount of time a user receives their HC subscription for (The default amount is 10 years)',
|
||||
],
|
||||
[
|
||||
'key' => 'max_comment_per_article',
|
||||
'value' => '2',
|
||||
'comment' => 'Specifies the amount of times a user can comment per article',
|
||||
],
|
||||
[
|
||||
'key' => 'furniture_icons_path',
|
||||
'value' => '/client/flash/dcr/hof_furni/icons',
|
||||
'comment' => 'The path used to display furniture icons - eg. on rare values',
|
||||
],
|
||||
[
|
||||
'key' => 'nitro_path',
|
||||
'value' => '/client/nitro/nitro-react/dist',
|
||||
'comment' => 'The path in which your index.html for nitro is located',
|
||||
],
|
||||
[
|
||||
'key' => 'enable_discord_webhook',
|
||||
'value' => '0',
|
||||
'comment' => 'Specify whether Discord webhooks will be sent or not (0 for disabled, 1 for enabled)',
|
||||
],
|
||||
[
|
||||
'key' => 'discord_webhook_url',
|
||||
'value' => '',
|
||||
'comment' => 'The URL provided by discord to send a webhook request',
|
||||
],
|
||||
[
|
||||
'key' => 'max_guestbook_posts_per_profile',
|
||||
'value' => '3',
|
||||
'comment' => 'The amount of guestbook posts a user can post on each user profile',
|
||||
],
|
||||
[
|
||||
'key' => 'tinymce_api_key',
|
||||
'value' => 'API-KEY-HERE',
|
||||
'comment' => 'The API key necessary in order to use TinyMCE',
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($settings as $setting) {
|
||||
WebsiteSetting::firstOrCreate(['key' => $setting['key']], [
|
||||
'key' => $setting['key'],
|
||||
'value' => $setting['value'],
|
||||
'comment' => $setting['comment'],
|
||||
]);
|
||||
}
|
||||
|
||||
$recaptchaEnabled = WebsiteSetting::where('key', 'google_recaptcha_enabled')->first();
|
||||
|
||||
// This is done to update the rare values key for existing applications
|
||||
WebsiteSetting::where('key', 'rare_values_icons_path')->update([
|
||||
'key' => 'furniture_icons_path',
|
||||
]);
|
||||
|
||||
// Disables cloudflare turnstile if the seeder is run while having google recaptcha enabled.
|
||||
if ($recaptchaEnabled->value === '1') {
|
||||
WebsiteSetting::where('key', 'cloudflare_turnstile_enabled')->update([
|
||||
'value' => '0',
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Shop\WebsiteShopArticle;
|
||||
use App\Models\Shop\WebsiteShopCategory;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteShopArticleSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$vipCategory = WebsiteShopCategory::where('name', 'VIP')->firstOrCreate(['slug' => 'vip'], [
|
||||
'name' => 'VIP',
|
||||
'icon_url' => 'https://i.imgur.com/5NBdR0z.gif',
|
||||
]);
|
||||
|
||||
$articles = [
|
||||
[
|
||||
'website_shop_category_id' => $vipCategory->id,
|
||||
'name' => 'Bronze Package',
|
||||
'info' => 'Embark on your Habbo adventure with the Bronze Package – your essential starter kit for the virtual world. Start building your dream rooms, customize your avatar, and get access to basic perks that will make your stay more enjoyable.',
|
||||
'icon_url' => 'https://i.imgur.com/1VGFYSL.gif',
|
||||
'color' => '#c5630f',
|
||||
'costs' => 500,
|
||||
'give_rank' => 2,
|
||||
'credits' => 5000,
|
||||
'duckets' => 5000,
|
||||
'diamonds' => 100,
|
||||
'badges' => 'VipParties2',
|
||||
'furniture' => null,
|
||||
],
|
||||
[
|
||||
'website_shop_category_id' => $vipCategory->id,
|
||||
'name' => 'Silver Package',
|
||||
'info' => 'The Silver Package is designed for Habbos who are ready to take their experience up a notch. Enjoy a substantial boost of in-game currency and exclusive access to items that will set you apart from the crowd.',
|
||||
'icon_url' => 'https://i.imgur.com/5NBdR0z.gif',
|
||||
'color' => '#dddddd',
|
||||
'costs' => 1000,
|
||||
'give_rank' => 3,
|
||||
'credits' => 10000,
|
||||
'duckets' => 10000,
|
||||
'diamonds' => 300,
|
||||
'badges' => 'VipParties2_Top100',
|
||||
'furniture' => null,
|
||||
],
|
||||
[
|
||||
'website_shop_category_id' => $vipCategory->id,
|
||||
'name' => 'Gold VIP',
|
||||
'info' => 'The Gold VIP package is the epitome of Habbo luxury, reserved for those who crave the ultimate in virtual prestige. Enjoy unparalleled access to exclusive items, premium features, and a status symbol that will make heads turn wherever you go in the Hotel.',
|
||||
'icon_url' => 'https://i.imgur.com/NiVvRrs.gif',
|
||||
'color' => '#E4A317FF',
|
||||
'costs' => 1500,
|
||||
'give_rank' => 4,
|
||||
'credits' => 15000,
|
||||
'duckets' => 15000,
|
||||
'diamonds' => 500,
|
||||
'badges' => 'VipParties2_Top10',
|
||||
'furniture' => null,
|
||||
],
|
||||
// Example for furniture pack
|
||||
/*
|
||||
[
|
||||
'name' => 'Furniture Pack #1',
|
||||
'info' => 'The perfect pack for the casino builder',
|
||||
'icon' => 'gold',
|
||||
'color' => '#E4A317FF',
|
||||
'costs' => 750,
|
||||
'badges' => 'VipParties2_Top100',
|
||||
'furniture' => json_encode([
|
||||
[
|
||||
'item_id' => 202,
|
||||
'amount' => 5,
|
||||
],
|
||||
[
|
||||
'item_id' => 212,
|
||||
'amount' => 2,
|
||||
],
|
||||
[
|
||||
'item_id' => 230,
|
||||
'amount' => 2,
|
||||
],
|
||||
]),
|
||||
],
|
||||
*/
|
||||
// Example for badge pack
|
||||
/*
|
||||
[
|
||||
'name' => 'Badge Pack #1',
|
||||
'info' => 'The perfect pack for the badge collector',
|
||||
'icon' => 'gold',
|
||||
'color' => '#E4A317FF',
|
||||
'costs' => 250,
|
||||
'badges' => 'BADGE_CODE_1;BADGE_CODE_2;BADGE_CODE_3;BADGE_CODE_4;BADGE_CODE_5',
|
||||
],
|
||||
*/
|
||||
|
||||
// Example for currency pack
|
||||
/*
|
||||
[
|
||||
'name' => 'Currency Pack #1',
|
||||
'info' => 'The perfect pack to boost your account',
|
||||
'icon' => 'gold',
|
||||
'color' => '#E4A317FF',
|
||||
'costs' => 250,
|
||||
'credits' => 25000,
|
||||
'duckets' => 35000,
|
||||
'diamonds' => 2500,
|
||||
],
|
||||
*/
|
||||
];
|
||||
|
||||
foreach ($articles as $article) {
|
||||
WebsiteShopArticle::updateOrCreate(['name' => $article['name']], [
|
||||
'website_shop_category_id' => $vipCategory->id,
|
||||
'name' => $article['name'],
|
||||
'info' => $article['info'],
|
||||
'icon_url' => $article['icon_url'],
|
||||
'color' => $article['color'],
|
||||
'costs' => $article['costs'],
|
||||
'give_rank' => $article['give_rank'] ?? null,
|
||||
'credits' => $article['credits'] ?? null,
|
||||
'duckets' => $article['duckets'] ?? null,
|
||||
'diamonds' => $article['diamonds'] ?? null,
|
||||
'badges' => $article['badges'] ?? null,
|
||||
'furniture' => $article['furniture'] ?? null,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Shop\WebsiteShopCategory;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteShopCategoriesSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$categories = [
|
||||
[
|
||||
'name' => 'VIP',
|
||||
'slug' => 'vip',
|
||||
'icon' => 'https://i.imgur.com/YiI0I1i.png',
|
||||
],
|
||||
[
|
||||
'name' => 'Currency',
|
||||
'slug' => 'currency',
|
||||
'icon' => 'https://i.imgur.com/YiI0I1i.png',
|
||||
],
|
||||
[
|
||||
'name' => 'Badges',
|
||||
'slug' => 'badges',
|
||||
'icon' => 'https://i.imgur.com/YiI0I1i.png',
|
||||
],
|
||||
[
|
||||
'name' => 'Rares',
|
||||
'slug' => 'rares',
|
||||
'icon' => 'https://i.imgur.com/YiI0I1i.png',
|
||||
],
|
||||
];
|
||||
|
||||
WebsiteShopCategory::upsert($categories, ['slug'], ['name', 'icon']);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Community\Staff\WebsiteTeam;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteTeamSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$teams = [
|
||||
['rank_name' => 'DJ'],
|
||||
['rank_name' => 'Wired Expert'],
|
||||
['rank_name' => 'Event planner'],
|
||||
];
|
||||
|
||||
WebsiteTeam::query()->upsert($teams, ['rank_name']);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Miscellaneous\WebsiteWordfilter;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class WebsiteWordfilterSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$words = [
|
||||
[
|
||||
'word' => 'fuck',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'idiot',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'hotel',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'nigger',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'nigga',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'retard',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'faggot',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'tranny',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'bitch',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'cunt',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'cock',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'word' => 'pussy',
|
||||
'created_at' => Carbon::now(),
|
||||
'updated_at' => Carbon::now(),
|
||||
],
|
||||
];
|
||||
|
||||
WebsiteWordfilter::query()->upsert($words, ['word']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user