Nux::createPoolRoom()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 61
Code Lines 53

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 61
rs 9.5147
c 0
b 0
f 0
cc 1
eloc 53
nc 1
nop 1

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace App\Helpers;
4
5
use App\Models\Room;
6
use App\Models\RoomItem;
7
use App\Models\User;
0 ignored issues
show
Bug introduced by
This use statement conflicts with another class in this namespace, App\Helpers\User.

Let’s assume that you have a directory layout like this:

.
|-- OtherDir
|   |-- Bar.php
|   `-- Foo.php
`-- SomeDir
    `-- Foo.php

and let’s assume the following content of Bar.php:

// Bar.php
namespace OtherDir;

use SomeDir\Foo; // This now conflicts the class OtherDir\Foo

If both files OtherDir/Foo.php and SomeDir/Foo.php are loaded in the same runtime, you will see a PHP error such as the following:

PHP Fatal error:  Cannot use SomeDir\Foo as Foo because the name is already in use in OtherDir/Foo.php

However, as OtherDir/Foo.php does not necessarily have to be loaded and the error is only triggered if it is loaded before OtherDir/Bar.php, this problem might go unnoticed for a while. In order to prevent this error from surfacing, you must import the namespace with a different alias:

// Bar.php
namespace OtherDir;

use SomeDir\Foo as SomeDirFoo; // There is no conflict anymore.
Loading history...
8
use App\Singleton;
9
use Illuminate\Http\Request;
10
11
/**
12
 * Class Nux.
13
 */
14
final class Nux extends Singleton
15
{
16
    /**
17
     * Generate a NUX Room.
18
     *
19
     * @param Request $request
20
     *
21
     * @return bool
22
     */
23
    public function generateRoom(Request $request): bool
24
    {
25
        switch ($request->json()->get('roomIndex')):
26
            case 1:
27
                return $this->createBedRoom($request->user());
28
        case 2:
29
                return $this->createPoolRoom($request->user());
30
        case 3:
31
                return $this->createClubRoom($request->user());
32
        default:
33
                return false;
34
        endswitch;
35
    }
36
37
    /**
38
     * Create the NUX Bed Room.
39
     *
40
     * @param User $user
41
     *
42
     * @return bool
43
     */
44
    protected function createBedRoom(User $user): bool
45
    {
46
        $room = (new Room())->store("{$user->name}'s room", "{$user->name} has entered the building", 'model_h', 25, 12, 610, 2403, 0.0, $user->uniqueId, $user->name);
47
48
        $user->update(['home_room' => $room->id]);
49
50
        // Floor Items
51
        (new RoomItem())->store($user->uniqueId, $room->id, 15542, 9, 9, '0.00000', 4, '');
52
        (new RoomItem())->store($user->uniqueId, $room->id, 15542, 9, 12, '0.00000', 0, '');
53
        (new RoomItem())->store($user->uniqueId, $room->id, 15542, 10, 9, '0.00000', 4, '');
54
        (new RoomItem())->store($user->uniqueId, $room->id, 15542, 10, 12, '0.00000', 0, '');
55
        (new RoomItem())->store($user->uniqueId, $room->id, 16412, 9, 5, '1.00000', 0, '');
56
        (new RoomItem())->store($user->uniqueId, $room->id, 16435, 7, 5, '1.00000', 0, '');
57
        (new RoomItem())->store($user->uniqueId, $room->id, 16486, 8, 5, '1.00000', 0, '');
58
        (new RoomItem())->store($user->uniqueId, $room->id, 17816, 6, 2, '1.00000', 0, '4');
59
        (new RoomItem())->store($user->uniqueId, $room->id, 17816, 9, 2, '1.00000', 0, '4');
60
        (new RoomItem())->store($user->uniqueId, $room->id, 17824, 7, 2, '1.00000', 0, '1');
61
        (new RoomItem())->store($user->uniqueId, $room->id, 17894, 9, 10, '0.00000', 0, '');
62
        (new RoomItem())->store($user->uniqueId, $room->id, 18074, 8, 4, '1.00000', 0, '1');
63
        (new RoomItem())->store($user->uniqueId, $room->id, 18817, 3, 10, '0.01000', 2, '');
64
        (new RoomItem())->store($user->uniqueId, $room->id, 18835, 3, 9, '0.00000', 0, '');
65
        (new RoomItem())->store($user->uniqueId, $room->id, 18835, 3, 11, '0.00000', 0, '');
66
        (new RoomItem())->store($user->uniqueId, $room->id, 18835, 5, 9, '0.00000', 0, '');
67
        (new RoomItem())->store($user->uniqueId, $room->id, 18835, 5, 11, '0.00000', 0, '');
68
69
        // Wall Items
70
        (new RoomItem())->store($user->uniqueId, $room->id, 22988, 0, 0, '0', 0, '', ':w=4,2 l=0,35 l');
71
        (new RoomItem())->store($user->uniqueId, $room->id, 23163, 0, 0, '0', 0, '1', ':w=4,8 l=0,43 r');
72
        (new RoomItem())->store($user->uniqueId, $room->id, 23261, 0, 0, '0', 0, '', ':w=2,10 l=2,34 l');
73
        (new RoomItem())->store($user->uniqueId, $room->id, 23331, 0, 0, '0', 0, '', ':w=2,10 l=2,29 l');
74
75
        return true;
76
    }
77
78
    /**
79
     * Create the Pool Room.
80
     *
81
     * @param User $user
82
     *
83
     * @return bool
84
     */
85
    protected function createPoolRoom(User $user): bool
86
    {
87
        $room = (new Room())->store("{$user->name}'s room", "{$user->name} has entered the building", 'model_h', 25, 12, 307, 3104, 1.10, $user->uniqueId, $user->name);
88
89
        $user->update(['home_room' => $room->id]);
90
91
        // Floor Items
92
        (new RoomItem())->store($user->uniqueId, $room->id, 16715, 5, 11, 1.30000, 0, '');
93
        (new RoomItem())->store($user->uniqueId, $room->id, 16732, 3, 10, 0.40000, 0, '');
94
        (new RoomItem())->store($user->uniqueId, $room->id, 17016, 3, 9, 0.00000, 2, '1');
95
        (new RoomItem())->store($user->uniqueId, $room->id, 17016, 3, 11, 0.00000, 0, '');
96
        (new RoomItem())->store($user->uniqueId, $room->id, 17016, 4, 9, 0.00000, 4, '');
97
        (new RoomItem())->store($user->uniqueId, $room->id, 17090, 3, 9, 0.00000, 2, '1');
98
        (new RoomItem())->store($user->uniqueId, $room->id, 17176, 3, 9, 0.00000, 0, '');
99
        (new RoomItem())->store($user->uniqueId, $room->id, 17176, 3, 9, 0.40000, 0, '');
100
        (new RoomItem())->store($user->uniqueId, $room->id, 17176, 3, 10, 0.00000, 0, '');
101
        (new RoomItem())->store($user->uniqueId, $room->id, 17190, 3, 11, 0.00000, 2, '');
102
        (new RoomItem())->store($user->uniqueId, $room->id, 17190, 4, 9, 0.00000, 4, '');
103
        (new RoomItem())->store($user->uniqueId, $room->id, 17191, 3, 10, 0.40000, 2, '');
104
        (new RoomItem())->store($user->uniqueId, $room->id, 17191, 3, 12, 0.00000, 2, '');
105
        (new RoomItem())->store($user->uniqueId, $room->id, 17484, 8, 3, 1.00000, 0, '0', 0);
106
        (new RoomItem())->store($user->uniqueId, $room->id, 17499, 7, 3, 1.00000, 2, '');
107
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 7, 2, 1.00000, 0, '');
108
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 7, 4, 1.00000, 0, '');
109
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 7, 5, 1.00000, 0, '');
110
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 8, 2, 1.00000, 0, '');
111
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 8, 5, 1.00000, 0, '');
112
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 9, 2, 1.00000, 0, '');
113
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 9, 5, 1.00000, 0, '');
114
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 10, 2, 1.00000, 0, '');
115
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 10, 3, 1.00000, 0, '');
116
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 10, 4, 1.00000, 0, '');
117
        (new RoomItem())->store($user->uniqueId, $room->id, 17520, 10, 5, 1.00000, 0, '');
118
        (new RoomItem())->store($user->uniqueId, $room->id, 17987, 5, 11, 0.00000, 0, '');
119
        (new RoomItem())->store($user->uniqueId, $room->id, 18051, 5, 2, 1.00000, 0, '');
120
        (new RoomItem())->store($user->uniqueId, $room->id, 18051, 5, 4, 1.00000, 0, '');
121
        (new RoomItem())->store($user->uniqueId, $room->id, 18051, 8, 9, 0.00000, 0, '');
122
        (new RoomItem())->store($user->uniqueId, $room->id, 18051, 8, 11, 0.00000, 0, '');
123
        (new RoomItem())->store($user->uniqueId, $room->id, 18051, 9, 9, 0.00000, 0, '');
124
        (new RoomItem())->store($user->uniqueId, $room->id, 18051, 9, 11, 0.00000, 0, '');
125
        (new RoomItem())->store($user->uniqueId, $room->id, 18061, 8, 8, 0.00000, 2, '');
126
        (new RoomItem())->store($user->uniqueId, $room->id, 18061, 8, 9, 0.00000, 6, '1');
127
        (new RoomItem())->store($user->uniqueId, $room->id, 18061, 10, 8, 0.00000, 4, '1');
128
        (new RoomItem())->store($user->uniqueId, $room->id, 18070, 8, 2, 1.50000, 0, '1');
129
        (new RoomItem())->store($user->uniqueId, $room->id, 18079, 9, 8, 0.00000, 0, '1');
130
        (new RoomItem())->store($user->uniqueId, $room->id, 18363, 3, 9, 0.80000, 0, '2');
131
132
        // Wall Items
133
        (new RoomItem())->store($user->uniqueId, $room->id, 22996, 0, 0, '0', 0, '', ':w=4,8 l=7,45 r');
134
        (new RoomItem())->store($user->uniqueId, $room->id, 22996, 0, 0, '0', 0, '', ':w=4,8 l=9,45 l');
135
        (new RoomItem())->store($user->uniqueId, $room->id, 23063, 0, 0, '0', 0, '', ':w=2,10 l=10,56 l');
136
        (new RoomItem())->store($user->uniqueId, $room->id, 23063, 0, 0, '0', 0, '', ':w=2,11 l=6,58 l');
137
        (new RoomItem())->store($user->uniqueId, $room->id, 23078, 0, 0, '0', 0, '1', ':w=6,1 l=0,26 r');
138
        (new RoomItem())->store($user->uniqueId, $room->id, 23078, 0, 0, '0', 0, '3', ':w=7,1 l=4,28 r');
139
        (new RoomItem())->store($user->uniqueId, $room->id, 23078, 0, 0, '0', 0, '1', ':w=8,1 l=13,33 r');
140
        (new RoomItem())->store($user->uniqueId, $room->id, 23078, 0, 0, '0', 0, '3', ':w=10,1 l=0,26 r');
141
        (new RoomItem())->store($user->uniqueId, $room->id, 23229, 0, 0, '0', 0, '1', ':w=4,3 l=6,49 l');
142
        (new RoomItem())->store($user->uniqueId, $room->id, 23229, 0, 0, '0', 0, '1', ':w=4,5 l=11,45 l');
143
144
        return true;
145
    }
146
147
    /**
148
     * Create the NUX Club Room.
149
     *
150
     * @param User $user
151
     *
152
     * @return bool
153
     */
154
    protected function createClubRoom(User $user): bool
155
    {
156
        $room = (new Room())->store("{$user->name}'s room", "{$user->name} has entered the building", 'model_h', 25, 12, 409, 1902, 0.0, $user->uniqueId, $user->name);
157
158
        $user->update(['home_room' => $room->id]);
159
160
        // Floor Items
161
        (new RoomItem())->store($user->uniqueId, $room->id, 16904, 4, 11, '0.00000', 0, '1');
162
        (new RoomItem())->store($user->uniqueId, $room->id, 16905, 6, 9, '0.00000', 0, '1');
163
        (new RoomItem())->store($user->uniqueId, $room->id, 16905, 6, 10, '0.00000', 0, '1');
164
        (new RoomItem())->store($user->uniqueId, $room->id, 16905, 8, 9, '0.00000', 0, '1');
165
        (new RoomItem())->store($user->uniqueId, $room->id, 16905, 8, 10, '0.00000', 0, '1');
166
        (new RoomItem())->store($user->uniqueId, $room->id, 16907, 5, 9, '0.00000', 6, '');
167
        (new RoomItem())->store($user->uniqueId, $room->id, 16907, 5, 10, '0.00000', 6, '');
168
        (new RoomItem())->store($user->uniqueId, $room->id, 16909, 4, 9, '0.00000', 2, '1');
169
        (new RoomItem())->store($user->uniqueId, $room->id, 16909, 4, 10, '0.00000', 2, '1');
170
        (new RoomItem())->store($user->uniqueId, $room->id, 16913, 6, 7, '1.30000', 0, '3');
171
        (new RoomItem())->store($user->uniqueId, $room->id, 16913, 9, 7, '1.30000', 0, '3');
172
        (new RoomItem())->store($user->uniqueId, $room->id, 17189, 10, 2, '1.00000', 0, '');
173
        (new RoomItem())->store($user->uniqueId, $room->id, 17573, 6, 7, '0.00000', 0, '3');
174
        (new RoomItem())->store($user->uniqueId, $room->id, 17573, 7, 7, '0.00000', 0, '3');
175
        (new RoomItem())->store($user->uniqueId, $room->id, 17573, 8, 7, '0.00000', 0, '3');
176
        (new RoomItem())->store($user->uniqueId, $room->id, 17573, 9, 7, '0.00000', 0, '3');
177
        (new RoomItem())->store($user->uniqueId, $room->id, 18048, 7, 2, '1.00000', 4, '');
178
        (new RoomItem())->store($user->uniqueId, $room->id, 18082, 6, 3, '1.00000', 2, '');
179
        (new RoomItem())->store($user->uniqueId, $room->id, 18082, 9, 3, '1.00000', 6, '');
180
181
        // Wall Items
182
        (new RoomItem())->store($user->uniqueId, $room->id, 23008, 0, 0, '0', 0, '2', ':w=4,8 l=0,27 r');
183
        (new RoomItem())->store($user->uniqueId, $room->id, 23013, 0, 0, '0', 0, '', ':w=2,10 l=2,44 l');
184
        (new RoomItem())->store($user->uniqueId, $room->id, 23014, 0, 0, '0', 0, '1', ':w=8,1 l=14,27 r');
185
        (new RoomItem())->store($user->uniqueId, $room->id, 23236, 0, 0, '0', 0, '1', ':w=6,1 l=5,31 r');
186
        (new RoomItem())->store($user->uniqueId, $room->id, 23239, 0, 0, '0', 0, '', ':w=4,7 l=4,29 l');
187
188
        return true;
189
    }
190
}
191